通过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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |