通过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

时间: 2024-12-10 14:23:23

通过ping命令检测主机的存活性的相关文章

使用ping命令探测主机在线脚本

使用ping命令探测192.168.0.0/16有哪些主机在线: 在线的,用绿色表示 不在线的,用红色表示 脚本如下: vim ping.sh #!/bin/bash # for i in {0..255};do for j in {1..254};do if ping -c 1 -w 1 192.168.$i.$j &> /dev/null;then echo -e "\033[32m192.168.$i.$j\033[0m is up" else echo -e &q

ping命令检测脚本

通过ping命令,测试192.168.1.100到192.168.1.120之间的所有主机是否在线,如果在线,就显示"ip is up."其中IP要换为真正的IP地址,并且以绿色显示:如果不在线,就显示"ip is down."其中IP要换为真正的IP地址,并且以红色显示.要求,分别使用while,until和for(两种)实现. 1,  #!/bin/bash # for I in {100..120} ;do ping -c 2 -W 3 192.168.1.$

使用Ping命令解析主机名解析出来的是IPv6

如果你经常使用ping命令,并身处局域网,那么你肯定会有这样一个疑问:Ping计算机名为何是IPv6地址? 问这个问题的人很少见,大多都是对网络知识稍有了解的人,所以才会闻到关于ping的问题,而且在这之前,你应该已经使用net view命令列举除了局域网中在线的机器的名字,但ping某些机器会是IPv6,而某些又是IPv4- OK,那么关于ping局域网中计算机名,结果为何是IPv6地址的问题,网络上并没有明细的答案,但你可以通过以下方法解决ping出的地址是IPv6的问题: 先来解决IPv6

使用ping命令检测ip

cat ~/ping-thread-net.sh  #!/bin/bash PING (){     ( > /tmp/downip_list       > /tmp/upip_list     ping $1 -W1 -c1 -q > /dev/null 2>&1     if [ $? -ne 0 ];then         echo $1  >> /tmp/downip_list     else echo $1 >> /tmp/upip_

Ping 命令详解

Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可以用来验证与远程计算机的连接. ping的参数 ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list] [-

ping命令扫描局域网内的主机

linux: 禁ping vim /proc/sys/net/ipv4/icmp_echo_ignore_all 0 代表允许 1代表禁止 ping.sh #!/bin/bash for i in {2..5}; do   host=122.152.172.$i  ping -c2  $host  >/dev/null  if [ $? = 0 ]  then      echo "122.152.172.$i is connected"  else  echo "12

Linux命令(35):ping命令-向网络主机发送数据包

ping命令 功能说明 ping是最常用的网络连接命令,ping会向指定的网络主机发送特殊网络数据包IMCP ECHO_REQUEST.多数网络设备收到该数据包会做出回应,通过此方法即可难网络连接是否正常,用法如下: ping [参数] [主机名或IP] 常用参数 选项 说明 -c 发送指定数据包后停止 -s 指定发送的数据字节数,预设值是56 -t 设置存活数值TTL的大小 -i 设置秒数,每隔几秒发送一次数据包,默认是1秒 示例                     测试连接性 [[ema

使用python和批处理bat脚本ping检测主机连通性

今天因为工作需求,要在报盘机器上(windows系统)检测与上手连接的网络可用性,使用zabbix自身的功能并不能解决这个问题.所以一开始考虑使用python脚本调系统的ping命令来检测 然后再使用zabbix来监控就可完成任务. 网上查了下,发现使用subprocess和shlex可以完成检测,于是参考着整了个小脚本 #!/usr/bin/env python # -*- coding: utf-8 -*- #author:qingmiao import subprocess import 

“ping”命令的原理就是向对方主机发送UDP数据包,HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”

Socket  是一套建立在TCP/IP协议上的接口不是一个协议 应用层:  HTTP  FTP  SMTP  Web 传输层:  在两个应用程序之间提供了逻辑而不是物理的通信(TCP  UDP) TCP  可靠的  面向连接的服务 UDP  不可靠的  无连接的服务 只要底层实现TCP IP协议  都可以用socket进行通信 1.TCP和UDP 1.1 TCP连接 TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往