Linux如何檢測服務器是否連接著網絡的代碼案例

這篇文章主要介紹了linux 檢測服務器是否連接著網絡的相關資料,需要的朋友可以參考下

linux 檢測服務器是否連接著網絡

linux: 每隔5分鐘檢測一次服務器是否連接著網絡,如果三次檢測都沒有網絡?則自動關機! 主要使用場景: 由于自己有一臺服務器放在偏遠的老家,有可能會遇到停電導致斷網的問題,并且停電后UPS使用時間也有限制, 因此設計此腳本為了解決停電的時候服務器突然斷電引起的各種問題,當停電后網絡也就不通了,此時需要自動關閉服務器. 當然,來電后需要手動啟動服務器!!!

?#!/bin/bash    #?檢測服務器是否連接著網絡,如果網絡不通?則?3次后?關機  #?crontab?-e  #?*/5?*?*?*?*?./check.sh    echo?"Starting?test?network?was?clear..."    if?test?-e?./checkInfo  ?then  ?echo?"CheckInfo?File?Exist..."  else  ?cat?/dev/null?>?./checkInfo  fi    last_res=`head?-1?./checkInfo`    checkInternet(){  ?ping_res=1    ?for?url?in?"8.8.8.8"?"61.139.2.69"?"114.114.114.114"?"168.95.1.1"?"223.5.5.5"?"180.76.76.76"  ?do  ?echo?"PING?${url}"    ?ping=`ping?-c?3?${url}|awk?'NR==7?{print?$4}'`    ?if?[?${ping}?-eq?0?]  ??then  ??ping_res=1  ??else  ??ping_res=2  ?fi    ?if?[?${ping_res}?-eq?2?]  ??then  ??break  ?fi  ?done    ?return?${ping_res}  }    checkInternet    result="$?"    if?[?${result}?-eq?1?]  ?then  ?if?[?"${last_res}"?=?"1"?]  ??then  ??echo?"2"?>?./checkInfo  ?elif?[?"${last_res}"?=?"2"?]  ??then  ??cat?/dev/null?>?./checkInfo  ??init?0  ??else  ??echo?"1"?>?./checkInfo  ?fi  ?else  ?cat?/dev/null?>?./checkInfo  fi

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享