首页 > 代码库 > 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成功的数据包