OpenWRT路由器中监控网络服务并重启的脚本
来源:互联网 发布:java socket 书籍 编辑:程序博客网 时间:2024/06/08 09:04
转载地址:http://jamesqi.com/%E5%8D%9A%E5%AE%A2/OpenWRT%E8%B7%AF%E7%94%B1%E5%99%A8%E4%B8%AD%E7%9B%91%E6%8E%A7%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E5%B9%B6%E9%87%8D%E5%90%AF%E7%9A%84%E8%84%9A%E6%9C%AC
前一阵子写了一篇《俺在德国上网的十八般武艺》和一篇《修改OpenWRT的设置接入802.1X认证的网络》,这个CF-E218N远程Wifi放大器确实帮了我的大忙,可以足不出户就连接上百米以外的WLan。
不过从第一天开始就发现有路由器偶然中断的情况,也就是电脑或者移动终端突然会断网找不到Wifi热点,这时跑过去看路由器,会发现背后几个LED灯在不停闪烁,而正常情况下是显示远程无线信号强弱的。故障间隔时间上不固定,有时十几个小时会断一次,有时几个小时,或者几天,好像是与使用频繁程度有关,网络越繁忙就越容易出故障。偶尔也出现过出问题后路由器自己恢复的情况,但多数情况下都无法自己恢复,只好人工去把电源关闭、再接通,让路由器重启,这样几分钟后可以恢复。
但这样也比较麻烦,想到能否有机制自动检测故障然后自动排除故障恢复访问呢?在网上找了一些资料,看到还是有人在Linux平台下编写脚本来做这个事情的,各种平台、各种路由器、各种监控手段和脚本都有,我这里结合自己的情况记录一下:
在/root下编写一个my_watchdog.sh脚本:
#!/bin/sh#sleep 100DATE=`date +%Y-%m-%d-%H:%M:%S`tries=0echo --- 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.logdoneecho $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.sh0 0,4,8,12,16,20 * * * date -u +"%Y.%m.%d-%H:%M:%S" >/usr/data/time_backup0,1,11,21,31,41,51 * * * * /usr/bin/set_kernel_timezone >/dev/null 2>&10 0,4,8,12,16,20 * * * /tmp/bw_backup/do_bw_backup.sh
几个注意的地方:
- 这个脚本是通过PING Google的DNS服务器8.8.8.8来判断网络是否连通的
- 连续5次不能PING通,中间间隔10秒,就判断为网络故障
- 我先考虑的处理办法是重启路由器,后来尝试用网络服务重启就可以恢复
- 增加了一个my_watchdog.log的日志文件,记录故障、重启的时间、次数
- 路由器的固态硬盘容量非常小,只有2M多,日志文件都不能大了,所以注释掉了一些不是很必要的运行记录
- 脚本运行时间间隔不宜太短,否则在没有WLan网络连接的情况下会不断重启网络服务,都无法登陆进去修改设置了,现在设定的5分钟对于登录修改、停止脚本运行还是够了
这个脚本运行了24小时,自动发现两次故障、自动重启网络服务两次,都正常恢复了,比人工来处理还是方便一些。不过如果能查到具体故障原因、彻底消除隐患才好,但那是高手才能做到的事情,我这种水平也就可以先做点临时修补、治标不治本的工作吧。
- OpenWRT路由器中监控网络服务并重启的脚本
- 自动监控apache服务状态并重启的shell脚本
- windows监控并重启某个进程 脚本
- linux脚本实现监控某个进程并重启
- openWrt监控每个IP速度的脚本
- 基于openwrt系统的小米路由器创建自启动脚本
- [OpenWrt] openwrt中一些与网络有关的脚本
- 自动检测 PHP-FPM 的错误并重启的 PHP 脚本
- openWRT中lua脚本的星号问题
- OpenWrt的中procd自己脚本编写
- kill指定的进程脚本,并重启指定服务
- 用于部署war并重启Tomcat的脚本
- OpenWrt-路由器上的linux
- OpenWrt-路由器上的linux
- OpenWrt-路由器上的linux
- OpenWrt-路由器上的linux
- OpenWrt:路由器上的Linux
- 自动化监控spark进程并重启
- Android动画及图片的缩放和旋转
- CocoaLumberjack——带颜色的Log
- 2014Android Demo源码 文件夹 PATH 列表
- js canvas画带箭头的虚线
- Windows系统python安装配置
- OpenWRT路由器中监控网络服务并重启的脚本
- 【iOS初级】delegate的理解
- [FAQ11625] Launcher3如何去掉主菜单,所有应用摆在桌面,类似小米桌面
- 操作系统知识整理
- linux tar:谨慎地拒绝创建空归档文件
- 使用Highcharts生成折线图_at last
- Linux start main
- HDU 1228 A + B【字符串的处理】
- Android原理揭秘系列之View、ViewGroup