17 de enero de 2014

Un poco de filosofía para entender la mala ortografía

Llevo tiempo quedándome de la mala ortografía de la gente. No es que la mía sea la mejor pero al menos entiendo la diferencia entre "a ver" y "haber".

La cosa es que de algunas pláticas con amigos he venido formando ideas que quiero compartir.

Esencialmente son tres:

1. El sistema de "educación" enseña a entender los símbolos (letras, palabras, etc), pero no a comprender el significado de los mismos.
Es decir que se instruye a los niños a leer y a escribir, pero no necesariamente a comprenderlo, por eso, a veces, después de leer algo no sabes ni qué dijiste.
Por eso también, al re leer lo escrito encuentras que alguna ideas no tienen conexión entre sí.

2. El lenguaje es una mera representación de una figura lógica.

3. La experiencia de la realidad es mayor en alguien cuyo corpus lingüístico es mayor puesto que puede describir mejor sus figuras lógicas.

19 de diciembre de 2013

¿Cómo obtener las conexiones INET de un proceso en solaris?

Hace unos días necesité, por motivos del trabajo, saber qué conexiones tcp hacía un proceso. La cosa es que este proceso tenía varias instancias corriendo. Por esto se me ocurrió hacer un script adaptado a mis necesidades.

Sé que esto se puede hacer con lsof o hasta con pfiles, pero vaya, esto me ayudó y me ahorró un poco de tiempo en el proceso de monitoreo.

Saludos!
-------------------------------------------------------------------------------------------------
#!/bin/bash
export PSIDS=$@
export PFILES="/bin/pfiles"
export EGREP="/bin/egrep"
export GREP="/bin/grep"
export AWK="/bin/awk"
export SED="/bin/sed"

for PSID in $PSIDS ; do
        echo "Para PID: $PSID"
        CONNLIST=`${PFILES} ${PSID} | ${EGREP} "peername|sockname"| ${GREP} -v \

"0.0.0.0"| ${AWK} '{print $3,":",$5}'| ${SED} -e 's/ : /:/'`
        echo $CONNLIST | ${AWK} '{for(i=1; i<=(NF/2); i++) print $((i*2)-1),"->",$(i*2);  }'
        echo "********************"
done

-------------------------------------------------------------------------------------------------
psInet.sh

 Para invocarlo, primero necesitamos sacar la lista de PID's en los que estoy interesado.

Suponiendo que un proceso llamado someProcess tiene 6 instancias corriendo, obviamente con PID's diferentes, puedo usar el siguiente comando para sacar la lista y pasarsela a mi script

$ ps -fea | grep someProcess | grep -v grep| awk '{print $2}'| xargs  ./psInet.sh

 la salida se verá más o menos así:

For PID: 25427
10.252.128.10:36557 -> 10.252.128.10:49911
10.252.128.12:36489 -> 10.252.128.12:5025
10.252.128.12:36495 -> 10.252.128.12:5025
********************
For PID: 13427
10.252.128.10:5550 -> 10.22.180.11:43854
10.252.128.10:5550 -> 10.22.180.11:43854
10.252.128.10:5550 -> 10.22.180.11:43854
10.252.128.10:31710 -> 10.252.128.10:49911
10.252.128.12:31495 -> 10.252.128.12:5025
10.252.128.12:31506 -> 10.252.128.12:5025
********************
For PID: 23876
10.252.128.10:44310 -> 10.252.128.10:49911
10.252.128.12:44147 -> 10.252.128.12:5025
10.252.128.12:44158 -> 10.252.128.12:5025
********************
For PID: 6766
10.252.128.10:38621 -> 10.252.128.10:49911
10.252.128.12:38522 -> 10.252.128.12:5025
10.252.128.12:38528 -> 10.252.128.12:5025
********************
For PID: 16489
10.252.128.10:20754 -> 10.252.128.10:49911
10.252.128.12:20640 -> 10.252.128.12:5025
10.252.128.12:20648 -> 10.252.128.12:5025
********************
For PID: 7279
10.252.128.10:20091 -> 10.252.128.10:49911
10.252.128.12:20011 -> 10.252.128.12:5025
10.252.128.12:20021 -> 10.252.128.12:5025
********************

Y claro, también funciona para un PID:

$ ./psInet.sh 7279
For PID: 7279
10.252.128.10:20091 -> 10.252.128.10:49911
10.252.128.12:20011 -> 10.252.128.12:5025
10.252.128.12:20021 -> 10.252.128.12:5025
********************