通過ping命令檢測主機的存活性
判斷所有的業務系統中主機的存活性ping
問題描述:現在有一上線項目,用的環境為vsphere 虛擬化技術。由於不能隨時判斷各虛擬主機的存活性,保證業務系統的正常運行,現在需要編寫一個腳本判斷主機的存活性,將返回值與第三方短信平臺進行對接
思路分析:
1、明確目的判斷主機的存活性,可用ping 命令 ping各個虛擬機的IP進行判斷
2、整個業務系統有多個虛擬IP,可用shell腳本中的for 循環
3、每隔一段時間執行循環一次,可用while循環 ,條件永遠為真,時間間隔可用sleep
4、每個IP都ping 一定的次數,可在for循環中嵌套while循環
5、返回失敗和成功的次數
6、最後進行判斷,失敗多少次,為異常
腳本編寫
1.定義一個文件,用於存放業務系統中所有的IP
vim address
192.168.31.6
192.168.31.7
……
2.編寫腳本
vim jcp.sh
#!/bin/bash
while true
DATE=$(date "+%Y-%m-%d %H:%M:%S")
do
for address in $(cat $1)
do
echo -en "ping $address……"
i=1
Pingtimes=10
Result=5
SuccessTimes=0
FailureTimes=0
while (($i <= $Pingtimes))
do
ping -c 5 -i 0.5 -t 5 $address > /dev/null 2>&1
if [ "$?" -eq "0" ];
then
SuccessTimes=$(($SuccessTimes+1))
echo "OK" && echo "$DATE $address is up " >> address.txt
else
FailureTimes=$(($FailureTimes+1))
echo "Failed" && echo "$DATE $address is down " >> address.txt
fi
i=$(($i+1))
done
echo "successtimes is $SuccessTimes"
echo "failuretimes is $FailureTimes"
if [ $FailureTimes -ge $Result ];
then
echo "$address is down"
else
echo "$address is up"
fi
done
sleep 10s;
done
3.執行查看結果
chmod +x jcp.sh
./jcp.sh address
本文出自 “92868888” 博客,轉載請與作者聯系!
通過ping命令檢測主機的存活性