加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

通过ping命令检测主机的存活性

发布时间:2020-12-15 16:32:34 所属栏目:安全 来源:网络整理
导读:判断所有的业务系统中主机的存活性ping 问题描述:现在有一上线项目,用的环境为vsphere 虚拟化技术。由于不能随时判断各虚拟主机的存活性,保证业务系统的正常运行,现在需要编写一个脚本判断主机的存活性,将返回值与第三方短信平台进行对接 思路分析: 1


判断所有的业务系统中主机的存活性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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读