无论是家用还是服务器,难免会遇到断网的情况。以下是一个断网检测脚本,可以参考一下,自行修改。
适用与LINUX服务器
#!/bin/bash
# 网络通断检测
Result=0
NoResponseipList=""
number=10
for ip in $@;
do
echo -n $(date '+%F %T')" "$ip
p=`ping $ip -c $number | grep packets | awk '{print $6}'`
if [ $p == '100%' ];then
echo -e " \033[31m目标服务器联通异常\033[0m"
let Result+=1;
NoResponseipList="$NoResponseipList$ip "
else
echo -e " \033[32m目标服务器联通正常\033[0m"
fi
done
if [ -n $NoResponseipList ];then
NoResponseipList=`echo $NoResponseipList | sed 's/ $//g'`
fi
if [ $Result -eq $# ]; then
i=1
while true;
do
sleep 60
p=`ping $1 -c $number | grep packets | awk '{print $6}'`
if [ $p == '100%' ];then
echo -e "$(date '+%F %T') $1 \033[31m未能正常访问\033[0m"
let i+=1;
else
echo "$(date '+%F %T') 网络恢复,等待时间: `expr $i \* 60`"
break
fi
done
elif [[ $Result -gt 0 && $Result -lt $# ]]; then
echo "$NoResponseipList不通"
else
echo "一切正常"
fi
需要crontab计划任务配合使用
*/5 * * * * sh /root/TestNetWorkInReset.sh 您设置的多个IP >> /root/TestNetWorkInReset.log 2>&1
案例:

华夏名网帮助中心