當前位置 主頁 > 服務器問題 > Linux/apache問題 > 最大化 縮小

    shell腳本自動檢測網絡掉線和自動重連

    欄目:Linux/apache問題 時間:2019-12-31 00:23

    在ppp移植成功后,有時會出現ppp掉線等情況。這篇文章寫了一個自動檢測連接網絡的解決方法。

    創建一個shell腳本,在里面添加一下內容。(記得給操作權限)

    #!/bin/sh
    //根據你自己的shell類型來選擇。
    while true
    //先做一個死循環
    do
    ping -c 3 -I ppp0 172.16.1.11 >/dev/null
    //指定一個出口去ping服務器的局域網ip,將結果重定向到/dev/null里。
    //-c 3 是指ping執行3次后結束。
    //-w 3 是指ping執行3秒后結束。
    if [  $? -eq 0  ];then
    //[]的兩邊都要有空格隔開
    //當ping成功了,它的返回值為0,什么也不用干。說明網絡暢通。
    //$?是用來獲取函數返回值或者上一個命令的退出狀態。
    echo "ppp0 is ready"
    sleep 30
    //為了防止過度的占用cpu資源,選擇延遲一段時間。
    else
    //當不成功說明這個網絡或出口有問題。
    echo "ppp0 is connecting"
    pppd call connectvpn
    //重新撥號,刷新這個出口。
    ifconfig
    sleep 30
    fi
    sleep 30
    done

    程序中加入了延時,是為了減少檢測所占用的cpu資源。本腳本是一分鐘檢測一次網絡狀況。

    當執行shell時出現syntax error: unexpected “then” (expecting “done”)報錯是是因為編碼格式不對,重新手打一遍就應該好了。

    ps:linux檢測程序是否掛掉并自動重新運行的腳本

    編寫一個腳本替代應用程序的運行,也就是通過啟動腳本來啟動程序,并監測程序是否掛掉,若掛掉則重新運行

    #!/bin/sh
    while true
    do
    ps -ef | grep "$PWD/app/auto_run.sh" | grep -v "grep"
    if [ "$?" -eq 1 ]
    then
    /home/root/app/auto_run.sh #啟動應用,修改成自己的啟動應用腳本或命令
    echo "process has been restarted!"
    else
    echo "process already started!"
    fi
    sleep 10
    done

    總結

    以上所述是小編給大家介紹的shell腳本自動檢測網絡掉線和自動重連,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對IIS7站長之家網站的支持!
    如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

青海十一选五开奖数据