透過ISP撥pppoe,有時是他是會自己斷線的,所以我們通常可以寫一個簡單的排程,讓他例如每分鐘跑一次
但事情沒那麼簡單,光檢查ppp0有沒有連線是不夠的,看看我的bash怎麼寫吧。
排程每分鐘跑,像是下方這樣
* * * * * /usr/local/scripts/repppoe.sh
我的這支repppoe.sh的bash如下:
#!/bin/bash
/sbin/ifconfig ppp0
if [ $? -gt 0 ];then
echo "start up ppp0"
/usr/bin/pon dsl-provider
fi
/sbin/ifconfig ppp1 >/dev/null 2>&1
if [ $? -eq 0 ];then
#全關
/usr/bin/poff -a
sleep 3
#重撥
/usr/bin/pon dsl-provider
fi
稍微說明一下,我通常會用簡單的指令來簡查是否執行正確,
在下圖中,您可以看到,當命令執行成功時是會回傳0的,也就是說回傳0沒問題,我不用重撥。
偏偏有萬中選一的例外,我就碰到了,可能某次的ifconfig回傳的不是0。
這會造成script多撥了一個新的網路ppp1,這不是我想要的,就像下方這樣
所以在上方的repppoe.sh中,我多檢測了ppp1,如果是因為某種原因,不該出現的ppp1,
我的解法通常很爆力,就把他停全部停掉,再重撥一次。😛
No Comment
Post your comment