2017-03-14 31 views
0

我對一臺電腦的問題感到沮喪,這臺電腦的網絡在顯然是隨機的時間下降,作爲一個解決方案,我做了一個簡單的cron作業,每小時重新啓動一次。但是,如果網絡已經啓動,這似乎很愚蠢 - 爲什麼重新啓動它,對吧?只有在Cron作業失敗時才能重新啓動網絡?

所以,有一個簡單的腳本,我可以創建它將首先檢查(ping?ifconfig?),看看網絡是否工作,然後只有當它返回false時才重新啓動?或者網絡管理員會檢查自己的標誌?

我cron是眼前這個:

15 * * * * /sbin/service network-manager restart 

在此先感謝與想法的人就如何更好地「網絡管理」這個! (雙關語意!):-)

回答

0

電話從你的crontab更復雜的腳本:

15 * * * * mySafeRestart 


#/bin/bash 
# mySafeRestart : restart only if uncommunicative 
if ! ping -c 1 remote.host.com ; then 
    /sbin/service network-manager restart 
fi 

至於網絡建立一個測試,看How to test an Internet connection with bash?

使用netcat的測試以下建議將:

if ! nc -w 2 google.com 80 ; then 
    ... 
+0

我已經看到網絡連接,ping可以工作,但TCP和UDP數據包不能實現。我會建議使用'nc'或一些這樣的工具來檢查網絡。 –

+0

嗨@AlexisWilke,感謝您的評論。你可以使用nc提供類似的解決方案嗎?我有這樣的想法,但如果ping存在嚴重問題,那麼這可能不太理想。我不是程序員,所以對這方面的幫助會很大。 – user1149499

+0

@ user1149499,see here http://stackoverflow.com/questions/4922943/test-from-shell-script-if-remote-tcp-port-is-open#9463554 –