Re: [问题] OPENWRT Cron定时执行检查LOG

楼主: HiJimmy (å—¨ 吉米)   2018-04-14 14:03:20
感谢各位帮忙
完整版如下
System>Scheduled Tasks
每分钟执行一次
*/1 * * * * sh /root/wifi_watchdog.sh
EX:
https://i.imgur.com/z5FI6sF.png
要把wifi_watchdog.sh放到/roor下面
#==================以下为wifi_watchdog.sh===================
#!/bin/sh
DATE=`date +%Y-%m-%d-%H:%M:%S`
#find the error message
dmesg|grep rt2x00queue_write_tx_frame>>/tmp/log.txt
#check the size if the log file
size=`du -a /tmp/log.txt|awk '{print $1}'`
if [ "$size" -gt "0" ]; then
echo $DATE Router reboot >>/root/wifi_watchdog.log
reboot
fi
#===========================================================
这样就会每分钟跑一次,只要抓到rt2x00queue_write_tx_frame错误
/tmp/log.txt 容量就会变大
然后,纪录重启时间点,重启路由器
※ 引述《HiJimmy (嗨 吉米)》之铭言:
: 大家好~~
: 目前有一台MTK路由器
: 因为驱动的问题,无线都会不定时出错
: 出错就要重开才会正常
: 所以我想要用定时检查
: 目前卡在条件判断式的写法
: cron 排程
: 1 0 0 0 0 /root/wifi_watchdog.sh
: 刚刚发现排程错了 应该是
: */1 * * * * /root/wifi_watchdog.sh 一分钟一次
: 批次档
: #!/bin/sh
: #撷取网卡错误纪录
: dmesg|grep rt2x00queue_write_tx_frame>>/tmp/log.txt
: #检查档案大小
: if [ du -a /tmp/log.txt>0]; then
: reboot
: fi
: 卡在检查完大小,我不知道那个数字要比对大于零的写法
: 目前这样写是过不了
: 有大于零代表出错
: 我只要抓到有大于零就要重开机
: 这样要如何撰写
楼主: HiJimmy (å—¨ 吉米)   2018-04-14 14:27:00
现在会自动重启了@@,不过,连到的设备有问题之后,Y得等到每一分钟的检查,也就是最长的时间是59秒加上开机时间,不过如果范围内有另一台漫游设备会自己连到另外一台
作者: asilzheng (asil)   2018-04-14 15:49:00
觉得59秒太长可在shell加上while/sleep将检查时间缩短
作者: kenduest (小州)   2018-04-14 21:00:00
* * * * * 就可以了,*/1 * * * * 这个 /1 多余的
作者: HamalAri (哈马‧阿里)   2018-04-15 00:14:00
是说为什么要生 log 档呢?if dmesg|grep rt2x00...; then reboot ;fi
作者: kenduest (小州)   2018-04-15 00:16:00
grep "xxxxxx" && reboot 应该就可以了
楼主: HiJimmy (å—¨ 吉米)   2018-04-15 16:10:00
昨天到现在重开四次了~~

Links booklink

Contact Us: admin [ a t ] ucptt.com