一个地址端口有时候可以通,有时候不行,telnet只能检测某一时刻的连通状态;为了持续检测,我这边写了一个shell脚本,内容如下。
编写一个非交互式shell检测脚本
vim check_port.sh
1 2 3 4 5 6 7 8 9 10 11 12 13
| #!/bin/bash IP='192.168.100.130' PORT_LIST="22 8080" TIME_STAMP=`date "+%Y-%m-%d %T"` for PORT in $PORT_LIST do RESULT=`echo "" | telnet $IP $PORT 2>/dev/null | grep "]" | wc -l` if [ $RESULT -eq 1 ];then echo "$TIME_STAMP $IP的$PORT端口可以连通" >> /tmp/1.txt else echo "$TIME_STAMP $IP的$PORT端口不能连通" >> /tmp/1.txt fi done
|
添加执行权限
chmod +x /opt/check_post.sh
使用crontab定时执行脚本
crontab -l
1
| */5 * * * * /opt/check_post.sh
|
ps:我发现了一个好工具tcping,可以直接实现ping+telnet, 下载地址:https://www.elifulkerson.com/projects/tcping.php
参考:https://www.jianshu.com/p/92adf516a62d