感谢各位帮忙
完整版如下
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
: 卡在检查完大小,我不知道那个数字要比对大于零的写法
: 目前这样写是过不了
: 有大于零代表出错
: 我只要抓到有大于零就要重开机
: 这样要如何撰写