ping一堆机器的二种方法(shell或fping)

本文介绍了一个用于批量Ping测试的Bash脚本,该脚本能够读取IP地址列表文件,对每个IP地址进行连续的Ping操作,并记录响应情况。此外,还提供了使用fping命令进行快速Ping测试的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
我的博客已迁移到xdoujiang.com请去那边和我交流
cat ip.sh
#!/bin/bash
#--------------------------------------------------
#Author:jimmygong
#Email:jimmygong@taomee.com
#FileName:ip.sh
#Function: 
#Version:1.0 
#Created:2015-11-02
#--------------------------------------------------
set -o nounset
ipfile="/root/iplist"
[[ -e $ipfile ]] || exit 1
pingdir="/opt/$(date +%Y%m%d)"
pinglog=${pingdir}/ping
pinglog2=${pingdir}/$(date +%s)ping
 
function pingfc ()
{
[[ -d ${pingdir} ]] || mkdir -p ${pingdir}
[[ -e $pinglog ]] && `> $pinglog`
[[ ! -e $pinglog ]] && touch $pinglog
i=1
while read ipline
do
    (
        packet=`ping -s 100 -c 100 -q $ipline|awk /transmitted/|awk '{print $6}'`  
    echo "$ipline $packet" >> $pinglog
    )&
    [[ $i%10 -eq 0 ]] && wait
done < $ipfile
wait
cat $pinglog|sort -rnk2 -t " " > $pinglog2 2>&1
}
 
function main ()
{
    while true
       do
         pingfc
         sleep 60
    done
}
 
main
exit 0
==================================说明============================================
bash ip.sh
执行结果
cat ping.log
111.111.111.111 100%
222.222.222.222 100%
333.333.333.333 23%
444.444.444.444 18%
555.555.555.555 17%
666.666.666.666 14%
777.777.777.777 13%
888.888.888.888 13%
999.999.999.999 12%
 
cat iplist.txt
111.111.111.111
222.222.222.222
333.333.333.333
444.444.444.444
555.555.555.555
666.666.666.666
777.777.777.777
888.888.888.888
999.999.999.999
 
-s 字节数指定发送的数据字节数预设值是56加上8字节的ICMP头一共是64ICMP数据字节。
Specifies the number of data bytes to be sent.  The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data.
-c 数目在发送指定数目的包后停止。
-c count
Stop after sending count ECHO_REQUEST packets. With deadline option, ping waits for count ECHO_REPLY packets, until the timeout expires.
-q 不显示任何传送封包的信息只显示最后的结果。
-q Quiet output.  Nothing is displayed except the summary lines at startup time and when finished.
 
二、需要安装fping命令(apt-get -y install fping --force-yes或yum -y install fping)
fping - sends ICMP ECHO_REQUEST packets to network hosts
 
fping -ef /root/iplist.txt >ping.log 2>&1
==================================说明============================================
执行结果
cat ping.log
10.1.1.101 is alive (0.66 ms)
10.1.1.102 is alive (1.22 ms)
10.1.1.104 is alive (1.28 ms)
10.1.1.105 is alive (1.26 ms)
10.1.1.103 is unreachable
 
cat iplist.txt
10.1.1.101
10.1.1.102
10.1.1.103
10.1.1.104
10.1.1.105
 
-f Read list of targets from a file.
-e Show elapsed (round-trip) time of packets









本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1639753,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值