0%

持续检测端口连通性

一个地址端口有时候可以通,有时候不行,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