Automate ports connectivity check using telnet and timeout
Check ports connectivity using automation with telnet and timeout commands. Timeout will help us not get blocked for a long time. Adjust the timeout value on case to case basis,
# vi ~/check_my_server_hostname.sh
timeout 2 bash -c "echo 'exit' | telnet my_server_hostname.tld 80"
if [ $? -eq 1 ];
then
# echo "good";
echo "Connectivity check succeeded" | mail -s "Connected - $HOSTNAME to my_server_hostname.tld:80" -r [email protected] [email protected]
else
# echo "bad";
echo "Connectivity check failed" | mail -s "Not connected - $HOSTNAME to my_server_hostname.tld:80" -r [email protected] [email protected]
fi
Setup crontab schedule. Below schedule with check connectivity every hour, past 15 and 45 mins.
# crontab -e 15,45 * * * * ~/check_my_server_hostname.sh
Quickly check ports
for host in 127.0.0.1 127.0.0.2 127.0.0.3 do timeout 2 bash -c "echo 'exit' | telnet $host 80" done
Alternative, using hostname:port format list
for ep in 127.0.0.1:80 127.0.0.1:81
do
timeout 2 bash -c "echo 'exit' | telnet ${ep%:*} ${ep#*:}"
done
HTH