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.