1. 程式人生 > >通過ping命令檢測主機的存活性

通過ping命令檢測主機的存活性

shell


判斷所有的業務系統中主機的存活性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命令檢測主機的存活性