1. 程式人生 > 程式設計 >Linux shell指令碼判斷網路暢通

Linux shell指令碼判斷網路暢通

Linux shell指令碼判斷網路暢通

介紹

在編寫shell指令碼時,有的功能需要確保伺服器網路是可以上網才可以往下執行,那麼此時就需要有個函式來判斷伺服器網路狀態

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

網路狀態判斷

#!/bin/bash

#檢測網路連結暢通
function network()
{
    #超時時間
    local timeout=1

    #目標網站
    local target=www.baidu.com

    #獲取響應狀態碼
    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

複製程式碼

網路狀態正常的指令碼執行結果: 網路暢通,你可以上網衝浪!

網路狀態不正常的指令碼執行結果: 網路不暢通,請檢查網路設定!