zoukankan      html  css  js  c++  java
  • 批量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
    
  • 相关阅读:
    Java8系列之重新认识HashMap(转)
    kafka 消费者和生产者测试类
    zookeeper配置
    JNLP应用程序无法打开的解决办法
    Functional Programming 资料收集
    Python的问题解决: IOError: [Errno 32] Broken pipe
    python的subprocess的简单使用和注意事项
    Python tricks(7) -- new-style class的__slots__属性
    Python tricks(6) -- python代码执行的效率
    Python tricks(5) -- string和integer的comparison操作
  • 原文地址:https://www.cnblogs.com/Mr-Ding/p/9539799.html
Copyright © 2011-2022 走看看