1. 程式人生 > >ping 命令檢索ping成功的數據包

ping 命令檢索ping成功的數據包

shell

腳本過濾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成功的數據包