首页 > 代码库 > ping 命令检索ping成功的数据包

ping 命令检索ping成功的数据包

 

脚本过滤ping通IP的数据包



1.问题描述:由于网络不稳定,导致业务系统中无法正常运行,经常有丢包的现象


2.需求:编写一个脚本,通过ping 命令发送一定数量的数据包,检索出成功与丢失的数据包的数量,来判断网络是否符合要求


3.思路:1)整个业务系统有多个IP,用fou 循环,用以取到不同的IP


2)对取到的IP进行ping ,过滤平通的包,对结果进行判断 并返回相应的值


3)每隔多长时间循环一次 sleep ,因此用到while循环 ,循环条件永远为真


4.编写脚本如下


  脚本描述:对每个IP ping100 个数据包,成功ping通90个包,表名网络正常,并返回一定的值normal  否侧返回abnormal  每10秒循环一次


#!/bin/bash

while true

DATE=$(date "+%Y-%m-%d %H:%M:%S")

do


   for address in $(cat $1)

        do

          echo -en "$DATE ping $address……"

          Pingpacket=100

          SuccessfullPackets=90

          ping $address -c $Pingpacket -i 0.5 -t 5

          ReceivedPacket=$(ping $address -c $Pingpacket -i 0.5 -t 5 | grep "received" | awk ‘{print $4}‘)

          LossPacket=$(($Pingpacket - $ReceivedPacket))

                 if [ $ReceivedPacket -ge $SuccessfullPackets ];

                      then

                      echo "Ping altogether $Pingpacket bags, received $ReceivedPacket bags" && echo " $address is  normal "  

                 else

                      echo "Ping altogether $Pingpacket bags, loss $LossPacket bags" && echo " $address is  abnormal "

                 fi

        done

sleep 10s;

done

~        


本文出自 “92868888” 博客,请务必保留此出处http://92868888.blog.51cto.com/12381417/1955181

ping 命令检索ping成功的数据包