无论是家用还是服务器,难免会遇到断网的情况。以下是一个断网检测脚本,可以参考一下,自行修改。
适用与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
案例: