Vamos a crear un monitor que nos diga si un puesto está en el modo que nos interesa (LISTEN, ESTABLISHED, WAIT)
Para ello, creamos un fichero standard:
#!/bin/bash
TYPE=$(basename "$0" | cut -d. -f1)
DIR='/tmp'
LOGS="${DIR}/${TYPE}.log"
PORT=$(echo $TYPE | sed 's/[^0-9]*//g')
STATE=$(echo $TYPE | awk -F_ '{print $NF}')
[ -f ${LOGS} ] || touch ${LOGS}
while true
do
DATE=`/bin/date '+%d%m%Y_%H%M%S'`
NUM=$(netstat -putan | grep :${PORT} | grep ${STATE} | wc -l)
[ -z "${NUM}" ] && NUM='0'
echo "${DATE} ${TYPE} ${NUM}" >> ${LOGS}
sleep 5
done
Y el script anterior lo copiaremos con el objetivo que aparezca el puerto y el modo en el mismo nombre del script:
cd /tmp
cp -rp BASE.sh PORT_8080_LISTEN.sh
cp -rp BASE.sh PORT_8080_ESTABLISHED.sh
cp -rp BASE.sh PORT_8080_WAIT.sh
Listo!
Ahora, cada ejecución nos generará una linea que quedará registrada en un fichero.