批量ping IP並檢測IP延遲率和丟包率腳本


腳本文件如下:

#!/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`
do
ping=`ping -c 1 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'`
Avg="$i 平均延遲(ms):`ping $i -c 3 |grep avg | gawk -F / '{print $5}'`"
num=`ping $i -c 3 |grep avg | gawk -F / '{print $5}'|gawk -F . '{print $1}'`
if [ $ping -eq 100  ];then
    action " ping $i faild"  /bin/false >>$shibai
    echo "$Avg"
else
    action " ping $i ok"    /bin/true
    echo "$Avg"
	if [ $num -ge 1 ];then
		echo "$i延遲為:$num(ms)" >>$yanchigao
	fi
fi
 done

cat $shibai
cat $yancigao
rm -f $shibai
rm -f $yanchigao

 腳本文件說明:

 

 . /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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM