每隔5分鐘檢測一次服務器是否連接著網絡,如果三次檢測都沒有網絡?則自動關機! 主要使用場景: 由于自己有一臺服務器放在偏遠的老
每隔5分鐘檢測一次服務器是否連接著網絡,如果三次檢測都沒有網絡?則自動關機! 主要使用場景: 由于自己有一臺服務器放在偏遠的老家,有可能會遇到停電導致斷網的問題,并且停電后UPS使用時間也有限制, 因此設計此腳本為了解決停電的時候服務器突然斷電引起的各種問題,當停電后網絡也就不通了,此時需要自動關閉服務器. 當然,來電后需要手動啟動服務器!!!
TTEr" style="font-family:Monaco, Menlo, Consolas, "background:none #F7F7F9 !important;vertical-align:baseline !important;font-size:13px !important;color:#AFAFAF !important;">
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
|
微信掃碼關注 億華聯眾 公眾號