批量 ping 测试脚本

是否会使用 vpn 工作,已经成为魔法师和麻瓜之间最重要的区分。使用 vpn 工作,也产生了其它一些奇奇怪怪的问题,比如,选择 vpn 服务器。

你要测试哪个 vpn 离你最近。

所以,就有了下面的脚本,毕竟一个个手动的 ping 有点麻烦。每次换 vpn 供应商,就得重新选一次。

ADDRESS=`awk ‘/^__ADDRESS_BELOW__/ {print NR + 1; exit 0; }‘ "$0"`

tail -n+$ADDRESS "$0"| while read x ; do echo `ping -c 3 $x | awk -F ‘[ /]‘ ‘NR==1 {ip=$2} $1=="3" {print ip,$10}‘` & done | sort -n -k2
exit 0

__ADDRESS_BELOW__
server1server2server3server4

server1,server2,server3...是服务器列表,域名或者 ip。

除了换 address_list 以外,根据设备的不同,ping 的输出也不一样,所以,还需要调整 $1=="3" {print ip,$10}‘ 这里的参数。我这里,ping 的结果如下:

ping -c 3 www.baidu.com
PING www.a.shifen.com (183.232.231.172) 56(84) bytes of data.
64 bytes from 183.232.231.172: icmp_req=1 ttl=54 time=36.8 ms
64 bytes from 183.232.231.172: icmp_req=2 ttl=54 time=38.7 ms
64 bytes from 183.232.231.172: icmp_req=3 ttl=54 time=38.3 ms

--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 10109ms
rtt min/avg/max/mdev = 36.862/37.996/38.737/0.814 ms

即,当 $1="3"时,为结果行; 此时,$10 是总耗时。因为已经指定空格为间隔符,$1 表示空格隔开的 section 中的第 1 个 section;以此类推,$10 是第 10 个。根据 ping 版本不同,这里做筛选的条件也不同。

想多学点 awk,可以戳 《awk 简明教程》。

时间: 12-27

批量 ping 测试脚本的相关文章

批量ping测试脚本

ping测试脚本 #!/bin/bash list=iplist.txt log=ping.log echo -n "" > $log #清空历史日志 grep -v "#" $list | grep -v "^$" > .list #从$list文件中读出ip地址列表,去掉包含#的行和空行,结果写入 .list while read IP do         echo "$IP  `ping -s 1000 -f -c 

windows的ping测试脚本

批量ping测试的批处理脚本 rem ping测试,需要一个ip.txt的附件提供ip列表 @echo off for /f %%i in (ip.txt) do ( ping -n 2 -w 300 %%i > nul if ERRORLEVEL 1 ( echo %%i unreachable ) else echo %%i reachable ) pause 两个ping包,通一个就算reachable,两个都不通输出unreachable windows的ping测试脚本

使用python编写批量ping主机脚本

通过使用python,编写脚本批量ping主机,验证主机是否处于活动状态 #!/usr/bin/python #auther: Jacky #date: 2016-08-01 #filename: ping_ip.py import os,sys import subprocess,cmd def subping():     f = open("ip_list.txt","r")     lines = f.readlines()     for line in 

批量ping IP地址命令测试是否通

批量ping IP地址命令测试是否通 #!/bin/bash#--------------------------------------------------------------------------------------------------echo -e " "echo -e " ==============================================="echo -e "| Thanks for using this

shell 编写脚本批量ping ip

最近做机房带宽检测.最近编写一个shell脚本批量ping各地机房的ip,返回失败率及平均响应时间 #!/bin/bash log=$1.log echo -n "" > $log for i in `cat $1` do   /bin/ping -s 1000 -f -c 100  $i > ip.txt echo "`curl ip.cn?ip=$i`  `cat ip.txt | grep transmitted  | gawk '{print $6}'` 

Linux批量ping脚本

根据鸟哥的ping脚本,我重新修改了一下.用到的知识有:read.Linux按行读取.shell输出效果调整等 其中Linux按行读取文件比较重要,可参看文下链接 1 脚本功能: 批量ping当前路径下文件里面的ip地址,ip地址必须一行行填写 2 注意: 请根据提示运行脚本,确保脚本有执行权限,不能在window上运行 #!/bin/bash # Program # Use ping command to check the network's PC state. # History # 20

工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话"Hello World!!"   2> 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的版本信息.当前使用的内核版本.当前系统的主机名 方案: 规范Shell脚本的一般组成: 1> #! 环境声明(Sha-Bang)    2> # 注释文本 

用shell脚本批量ping域名

此脚本实现的功能是批量ping域名,将能ping通的和不能ping通的分类,并记录能ping通的域名的相应解析地址 #!/bin/bash #判断第一个参数是否是文件,不是则退出 if [[ -f $1 ]];then do_name=(`cat $1`) else echo "$1文件不存在" exit 1 fi #设置ping的包个数 package_num=2 echo -e "解析地址\t\t域名">>res_ok.txt echo "

批量ping连续ip

今天需要新开一个vlan,准备给用192.168.12.0/24网络,测试下这个段ip有没有被使用,批量ping下这个网段写了一个脚本: [[email protected] ~]# cat ping.sh #!/bin/bash if [ -z "$1" ];then echo -e "\033[40;33mUsage: /bin/bash ping.sh 192.168.16\033[40;37m" exit 1 fi for ((i=1;i<=254;i