优选主流主机商
任何主机均需规范使用

Linux环境下如何快速检测服务器网络连接状态 - 实用技巧详解

Linux 检测服务器是否连接着网络

摘要: 每隔5分钟检测一次服务器是否连接着网络,如果三次检测都没有网络?则自动关机! 主要使用场景: 由于自己有一台服务器放在偏远的老家,有可能会遇到停电导致断网的问题,并且停电后UPS使用时间也有限制, 因此设计此脚本为了解决停电的时候服务器突然断电引起的各种问题,当停电后网络也就不通了,此时需要自动关闭服务器. 当然,来电后需要手动启动服务器!!!

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 #!/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

 

 

未经允许不得转载:搬瓦工中文网 » Linux环境下如何快速检测服务器网络连接状态 - 实用技巧详解