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
<code>我的部落格已遷移到xdoujiang.com請去那邊和我交流</code>
<code>cat</code> <code>ip.sh</code>
<code>#!/bin/bash</code>
<code>#--------------------------------------------------</code>
<code>#Author:jimmygong</code>
<code>#Email:[email protected]</code>
<code>#FileName:ip.sh</code>
<code>#Function: </code>
<code>#Version:1.0 </code>
<code>#Created:2015-11-02</code>
<code>set</code> <code>-o nounset</code>
<code>ipfile=</code><code>"/root/iplist"</code>
<code>[[ -e $ipfile ]] || </code><code>exit</code> <code>1</code>
<code>pingdir=</code><code>"/opt/$(date +%Y%m%d)"</code>
<code>pinglog=${pingdir}</code><code>/ping</code>
<code>pinglog2=${pingdir}/$(</code><code>date</code> <code>+%s)</code><code>ping</code>
<code>function</code> <code>pingfc ()</code>
<code>{</code>
<code>[[ -d ${pingdir} ]] || </code><code>mkdir</code> <code>-p ${pingdir}</code>
<code>[[ -e $pinglog ]] && `> $pinglog`</code>
<code>[[ ! -e $pinglog ]] && </code><code>touch</code> <code>$pinglog</code>
<code>i=1</code>
<code>while</code> <code>read</code> <code>ipline</code>
<code>do</code>
<code> </code><code>(</code>
<code> </code><code>packet=`</code><code>ping</code> <code>-s 100 -c 100 -q $ipline|</code><code>awk</code> <code>/transmitted/</code><code>|</code><code>awk</code> <code>'{print $6}'</code><code>` </code>
<code> </code><code>echo</code> <code>"$ipline $packet"</code> <code>>> $pinglog</code>
<code> </code><code>)&</code>
<code> </code><code>[[ $i%10 -</code><code>eq</code> <code>0 ]] && wait</code>
<code>done</code> <code>< $ipfile</code>
<code>wait</code>
<code>cat</code> <code>$pinglog|</code><code>sort</code> <code>-rnk2 -t </code><code>" "</code> <code>> $pinglog2 2>&1</code>
<code>}</code>
<code>function</code> <code>main ()</code>
<code> </code><code>while</code> <code>true</code>
<code> </code><code>do</code>
<code> </code><code>pingfc</code>
<code> </code><code>sleep</code> <code>60</code>
<code> </code><code>done</code>
<code>main</code>
<code>exit</code> <code>0</code>
<code>==================================說明============================================</code>
<code>bash</code> <code>ip.sh</code>
<code>執行結果</code>
<code>cat</code> <code>ping</code><code>.log</code>
<code>111.111.111.111 100%</code>
<code>222.222.222.222 100%</code>
<code>333.333.333.333 23%</code>
<code>444.444.444.444 18%</code>
<code>555.555.555.555 17%</code>
<code>666.666.666.666 14%</code>
<code>777.777.777.777 13%</code>
<code>888.888.888.888 13%</code>
<code>999.999.999.999 12%</code>
<code>cat</code> <code>iplist.txt</code>
<code>111.111.111.111</code>
<code>222.222.222.222</code>
<code>333.333.333.333</code>
<code>444.444.444.444</code>
<code>555.555.555.555</code>
<code>666.666.666.666</code>
<code>777.777.777.777</code>
<code>888.888.888.888</code>
<code>999.999.999.999</code>
<code>-s 位元組數指定發送的資料位元組數預設值是56加上8位元組的ICMP頭一共是64ICMP資料位元組。</code>
<code>Specifies the number of data bytes to be sent. The default is 56, </code><code>which</code> <code>translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data.</code>
<code>-c 數目在發送指定數目的包後停止。</code>
<code>-c count</code>
<code>Stop after sending count ECHO_REQUEST packets. With deadline option, </code><code>ping</code> <code>waits </code><code>for</code> <code>count ECHO_REPLY packets, </code><code>until</code> <code>the timeout expires.</code>
<code>-q 不顯示任何傳送封包的資訊隻顯示最後的結果。</code>
<code>-q Quiet output. Nothing is displayed except the summary lines at startup </code><code>time</code> <code>and when finished.</code>
<code>二、需要安裝fping指令(apt-get -y </code><code>install</code> <code>fping --force-</code><code>yes</code><code>或yum -y </code><code>install</code> <code>fping)</code>
<code>fping - sends ICMP ECHO_REQUEST packets to network hosts</code>
<code>fping -ef </code><code>/root/iplist</code><code>.txt ></code><code>ping</code><code>.log 2>&1</code>
<code>10.1.1.101 is alive (0.66 ms)</code>
<code>10.1.1.102 is alive (1.22 ms)</code>
<code>10.1.1.104 is alive (1.28 ms)</code>
<code>10.1.1.105 is alive (1.26 ms)</code>
<code>10.1.1.103 is unreachable</code>
<code>10.1.1.101</code>
<code>10.1.1.102</code>
<code>10.1.1.103</code>
<code>10.1.1.104</code>
<code>10.1.1.105</code>
<code>-f Read list of targets from a </code><code>file</code><code>.</code>
<code>-e Show elapsed (round-trip) </code><code>time</code> <code>of packets</code>
本文轉自 xdoujiang 51CTO部落格,原文連結:http://blog.51cto.com/7938217/1639753,如需轉載請自行聯系原作者