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