Uma vez este utilizei este script para uma demanda específica , então estou deixando aqui meu script caso alguém precise.
host=localhost
DATE=`date +%Y-%m-%d`
TIME=`date +%H%M%S`
LOG_OK=/tmp/telnet_ok
LOG_FAIL=/tmp/telnet_falha
for port in 80 25 22 443 110
do
if telnet -c $host $port </dev/null 2>&1 | grep -q Escape; then
echo "$DATE $TIME $port: Connected" >> $LOG_OK
else
echo "$DATE $TIME $port : no connection" >> $LOG_FAIL
fi
done
Caso precise receber email sobre o status podemos usá-lo da seguinte forma :
Considerando que a variável $NUM no começo do script é o número de portas a serem monitoradas.
host=localhost
DATE=`date +%Y-%m-%d`
TIME=`date +%H%M%S`
LOG_OK=/tmp/telnet_ok
LOG_FAIL=/tmp/telnet_falha
$NUM=5
for port in 80 25 22 443 110
do
if telnet -c $host $port </dev/null 2>&1 | grep -q Escape; then
echo "$DATE $TIME $port: Connected" >> $LOG_OK
else
echo "$DATE $TIME $port : no connection" >> $LOG_FAIL
tail -$NUM | mail -s "Port Check $DATE" fabio.abreu@fajlinux.com.br
fi
done
Após ajustar coloque no seu crontab.