一、在/root下编写一个my_watchdog.sh脚本:
#!/bin/sh #sleep 100 DATE=`date +%Y-%m-%d-%H:%M:%S` tries=0 echo --- my_watchdog start --- while [[ $tries -lt 5 ]] do if /bin/ping -c 1 8.8.8.8 >/dev/null then echo --- exit --- # echo $DATE OK >>my_watchdog.log exit 0 fi tries=$((tries+1)) sleep 10 # echo $DATE tries: $tries >>my_watchdog.log done echo $DATE network restart >>my_watchdog.log /etc/init.d/network restart #echo $DATE reboot >>my_watchdog.log #reboot
二、然后用crontab -e来在系统的crontab中添加一句,每隔5分钟定时运行这个脚本:
*/5 * * * * sh /root/my_watchdog.sh
作者的注释:
几个注意的地方:
这个脚本是通过PING Google的DNS服务器8.8.8.8来判断网络是否连通的
连续5次不能PING通,中间间隔10秒,就判断为网络故障
我先考虑的处理办法是重启路由器,后来尝试用网络服务重启就可以恢复
增加了一个my_watchdog.log的日志文件,记录故障、重启的时间、次数
路由器的固态硬盘容量非常小,只有2M多,日志文件都不能大了,所以注释掉了一些不是很必要的运行记录
脚本运行时间间隔不宜太短,否则在没有WLan网络连接的情况下会不断重启网络服务,都无法登陆进去修改设置了,现在设定的5分钟对于登录修改、停止脚本运行还是够了
这个脚本运行了24小时,自动发现两次故障、自动重启网络服务两次,都正常恢复了,比人工来处理还是方便一些。不过如果能查到具体故障原因、彻底消除隐患才好,但那是高手才能做到的事情,我这种水平也就可以先做点临时修补、治标不治本的工作吧。
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。