2010-06-05 79 views
0

在Ubuntu的10.04服務器我願做一個bash腳本如下:bash腳本監控ISDN連接

創建監視ISDN連接服務,如果停機時間超過60秒力量重新連接。 我目前的解決方案看起來是這樣的:

#!/usr/bin/bash 
LOGFILE=/home/msw/router/ping-stats.txt 
TIME="`date +%C%y%m%d%H%M`" 
/sbin/ping -c 1 google.com > /dev/null 2>&1 
if [ "$?" == "0" ] 
then 
     STATUS=1 
else 
     STATUS=0 
fi 
echo "$TIME $STATUS" >> $LOGFILE 

由於帶寬的ISDN連接上珍貴的,我想,以避免ping和與簡單地檢查了網絡設備的狀態的命令替換它。如果連接是「up」,可以推斷出來嗎?

我還想將解決方案作爲一種服務來持續檢查連接,而不是定期用cronjob檢查。

我真的很感激,如果有人能把我推向正確的方向。

謝謝

回答

1

爲了快速和骯髒的有nm-tooldbus-send可以更精確一點,但需要了解D-Bus如何與NetworkManager配合使用的知識。如果你想要持久化的東西,那麼你需要學習如何與D-Bus交互,但是這可能需要使用像Python這樣的較低級別的東西。

+0

有趣。我會研究這一點,非常感謝。 – 2010-06-05 02:38:10

1

您的ISDN是由內部適配器還是通過以太網連接提供的?如果您有外部「調制解調器」,則需要使用SNMP或其專有設施來查詢該調制解調器。

你可以做你的測試通過這樣的方式:

if /sbin/ping -c 1 google.com > /dev/null 2>&1 
then 
    ... 

此外,單平是一個字節一個非常小的數目。如果你每分鐘只做幾次,你可能永遠都不會注意到它。

+0

非常感謝。 ISDN由內部Fritz!卡提供。 – 2010-06-05 02:15:50