判断所有的业务系统中主机的存活性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
总结
以上是编程之家为你收集整理的通过ping命令检测主机的存活性全部内容,希望文章能够帮你解决通过ping命令检测主机的存活性所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!
如果觉得《ping 计算机名判断机器是否 通过ping命令检测主机的存活性》对你有帮助,请点赞、收藏,并留下你的观点哦!