天天看點

ping一堆機器的二種方法(shell或fping)

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 ]] &amp;&amp; `&gt; $pinglog`</code>

<code>[[ ! -e $pinglog ]] &amp;&amp; </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>&gt;&gt; $pinglog</code>

<code>    </code><code>)&amp;</code>

<code>    </code><code>[[ $i%10 -</code><code>eq</code> <code>0 ]] &amp;&amp; wait</code>

<code>done</code> <code>&lt; $ipfile</code>

<code>wait</code>

<code>cat</code> <code>$pinglog|</code><code>sort</code> <code>-rnk2 -t </code><code>" "</code> <code>&gt; $pinglog2 2&gt;&amp;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 &gt;</code><code>ping</code><code>.log 2&gt;&amp;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,如需轉載請自行聯系原作者