24小時斷線288次。居易2104自動化機制
function show_session {
echo open 192.168.22.66
# 以上是分享器ip
sleep 1
echo ilovewawa
# 以上是密碼
sleep 1
echo show session
# show session 指令
sleep 5
echo quit
}function sys_reboot {
echo open 192.168.22.66
# 以上是分享器ip
sleep 3
echo ilovewawa
# 以上是密碼
sleep 3
echo sys reboot
# 重新啟動的指令
sleep 1
echo quit
} n=`show_session telnet grep Current awk '{ print $5 }'`
if [ $n -gt 10000 ] ; then
sys_reboot telnet
echo "DrayTek Vigor2104 Session $n Reboot at `date +%H:%M`" mail -s "DrayTek Vigor2104 Session $n Reboot at `date +%H:%M`" [email protected]
# 以上是重新啟動電子郵件通知
fi
這簡單的幾行字解決了自動重啟的問題,但是有時候明明 session 不多,但是網路還是很慢,我就會想重新啟動一下,之前都是乖乖的輸入密碼登入後下指令重啟,昨天心血來潮寫了一支懶人 script,執行後就直接重啟,如下。
function sys_reboot {
echo open 192.168.22.66
sleep 3
echo ilovewawa
sleep 3
echo sys reboot
sleep 1
echo quit
} sys_reboot telnet
問題就在於我傻傻改了原本 crontab 應該會執行的 script,就變成每5分鐘重新啟動分享器一次,夠白癡了,寫這篇文章來展示自己的白癡之外,順便分享這個小小的 script。再補充一點,我的 script 把 session 超過10000就重新啟動了,因為到 session 到12000時反應就很慢了,無法準確利用 sleep 來控制指令輸入的時刻,所以改成10000囉!