Linux shell指令碼判斷伺服器網路是否可以上網

大雄45發表於2021-10-01
導讀 在編寫 時,有的功能需要確保伺服器網路是可以上網才可以往下執行,那麼此時就需要有個函式來判斷伺服器網路狀態。

我們可以透過curl來訪問 ,從而判斷伺服器網路狀態是否可以暢通的。

#!/bin/bash
#檢測網路連結暢通
function network()
{
    #超時時間
    local timeout=1
    #目標網站
    local target=
    #獲取響應狀態碼
    local ret_code=`curl -I -s --connect-timeout ${timeout} ${target} -w %{http_code} | tail -n1`
    if [ "x$ret_code" = "x200" ]; then
        #網路暢通
        return 1
    else
        #網路不暢通
        return 0
    fi
    return 0
}
network
if [ $? -eq 0 ];then
	echo "網路不暢通,請檢查網路設定!"
	exit -1
fi
echo "網路暢通,你可以上網衝浪!"
exit 0

網路狀態正常的 執行結果:

網路暢通,你可以上網衝浪!

網路狀態不正常的指令碼執行結果:

網路不暢通,請檢查網路設定!

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2794314/,如需轉載,請註明出處,否則將追究法律責任。

相關文章