OpenWRT路由器中監控網路服務並重啟的指令碼

2021-06-26 12:08:11 字數 1537 閱讀 3672

前一陣子寫了一篇《俺在德國上網的十八般武藝》和一篇《修改openwrt的設定接入802.1x認證的網路》,這個cf-e218n遠端wifi放大器確實幫了我的大忙,可以足不出戶就連線上百公尺以外的wlan。

不過從第一天開始就發現有路由器偶然中斷的情況,也就是電腦或者移動終端突然會斷網找不到wifi熱點,這時跑過去看路由器,會發現背後幾個led燈在不停閃爍,而正常情況下是顯示遠端無線訊號強弱的。故障間隔時間上不固定,有時十幾個小時會斷一次,有時幾個小時,或者幾天,好像是與使用頻繁程度有關,網路越繁忙就越容易出故障。偶爾也出現過出問題後路由器自己恢復的情況,但多數情況下都無法自己恢復,只好人工去把電源關閉、再接通,讓路由器重啟,這樣幾分鐘後可以恢復。

但這樣也比較麻煩,想到能否有機制自動檢測故障然後自動排除故障恢復訪問呢?在網上找了一些資料,看到還是有人在linux平台下編寫指令碼來做這個事情的,各種平台、各種路由器、各種監控手段和指令碼都有,我這裡結合自己的情況記錄一下:

在/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

fitries=$((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

0 0,4,8,12,16,20 * * * date -u +"%y.%m.%d-%h:%m:%s" >/usr/data/time_backup

0,1,11,21,31,41,51 * * * * /usr/bin/set_kernel_timezone >/dev/null 2>&1

0 0,4,8,12,16,20 * * * /tmp/bw_backup/do_bw_backup.sh

幾個注意的地方:

這個指令碼執行了24小時,自動發現兩次故障、自動重啟網路服務兩次,都正常恢復了,比人工來處理還是方便一些。不過如果能查到具體故障原因、徹底消除隱患才好,但那是高手才能做到的事情,我這種水平也就可以先做點臨時修補、治標不治本的工作吧。

cacti監控路由器

上節說完了cacti的安裝部署,這節來說說對公司路由器的監控,路由器 銳捷 nbr 1200 要獲得路由器的資訊必須注意兩點 1 需獲得ip位址,2 需路由器開啟snmp協議 路由器內部ip位址為 192.168.1.1 為公司內網閘道器 由於路由器web介面沒有snmp配置可以選擇,因此選擇命令列...

OpenWrt 路由器上的linux

2013 07 16 13 55 原創叉叉 2 openwrt並不適合所有人。大多數人對自己的路由器自帶韌體已經很滿意了,但許多高階使用者則會使用像dd wrt這樣的嵌入式替代方案。但openwrt更靈活 本質上它是乙個可安裝於各種路由器的嵌入式linux系統。openwrt有乙個web互動介面,但...

OpenWrt 路由器上的Linux

官網 適於嵌入式裝置的乙個linux發行版,可刷無線路由器。相對原廠韌體而言,openwrt不是乙個單 一 靜態的韌體,而是提供了乙個可新增軟體包的可寫的檔案系統。這使使用者可以自由的選擇應用程式和配置,而不必受裝置提供商的限制,並且可以使用一些適合某方面應用的軟體包來定製你的裝置。對於開發者來說,...