#!/usr/bin/env bash
times=5 # 定义失败次数
SERVER=baidu.com # 检测的SERVER
PORT=81 # 检测SERVER 的端口
message="${SERVER}: ${PORT}端口不通"
test_link(){
# 测试端口连接函数
fails=0 # 定义失败初始值为0
# 循环重试次数检查次数
for t in $(seq ${times})
do
sleep 0.2
# 执行timeout命令 获取环境变量的 $? 来获取是否成功,$? 等于 0 则成功
code=$(timeout 0.2 bash -c "cat </dev/null>/dev/tcp/${SERVER}/${PORT}" && \
echo $?||echo $?)
if [ ${code} != 0 ];then
fails=$((${fails} + 1)) # 测试端口失败后 失败次数加1
fi
if [ ${fails} -gt 3 ];then # 失败次数 超过三次报警
echo ${message}
exit 0
fi
done
}
test_link
```
评论区