批量ping IP并检测IP延迟率和丢包率脚本
转载: https://www.cnblogs.com/Mr-Ding/p/9539799.html
#!/bin/bash
#Author:Mr.Ding
#Created Time:2018-08-26 07:23:44
#Name:ping.sh
#Description:
shibai=
"/root/scripts/shell/ping_shibai.txt"
yanchigao=
"/root/scripts/shell/yanchigao.txt"
./etc/init.d/functions
for
i
in
`cat IP_list` #这个是逐个读取allip文件里的ip;
do
#对读出来的ip ping一次,看是否ping通。并取出loss的百分比的值 也就是掉包的值 ,看是否掉包
ping=`ping -c 1 $i|grep loss|awk
'{print $6}'
|awk -F
"%"
'{print $1}'
`
#每个IP ping3次并获取每个IP的平均延迟,如果IP不通,则获取不到延迟,为空;
Avg=
"$i 平均延迟(ms):`ping $i -c 3 |grep avg | gawk -F / '{print $5}'`"
#每个IP ping3次并获取每个IP的平均延迟,取整数,如果IP不通,则获取不到延迟,为空;
num=`ping $i -c 3 |grep avg | gawk -F /
'{print $5}'
|gawk -F .
'{print $1}'
`
#比较一下,看掉包的值是不是100,如果是100就是全部掉包,那就是没ping通,那就显示 ping ip faild,如果不等于100的话,就ping通了,就显示 Ping ip OK
if
[ $ping -eq 100 ];then
action
" ping $i faild"
/bin/
false
>>$shibai
echo
"$Avg"
else
action
" ping $i ok"
/bin/
true
echo
"$Avg"
#如果ping的延迟大于或等于100ms,就写入到$yanchigao文件中;
if
[ $num -ge 100 ];then
echo
"$i延迟为:$num(ms)"
>>$yanchigao
fi
fi
done
cat $shibai
cat $yancigao
rm -f $shibai
rm -f $yanchigao