編寫shell腳本,測試某網段内主機連通性:
1.測試192.168.4.0/24整個網段的連通性(while版本)
2.測試192.168.4.0/24整個網段的連通性(for版本)
3.測試192.168.4.0/24整個網段的連通性(多程序版本)
++++++++++++++++++++++++++++++++++++++++++++++++++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<code>#!/bin/bash</code>
<code>#Author:丁丁曆險(Jacob)</code>
<code>#定義變量i控制循環次數,i從1開始循環,每循環一次,i自加1,直到i等于254循環退出</code>
<code>#在每次循環中對一個IP進行ping測試,如果ping通,提示主機是UP的</code>
<code>#如果無法ping同,則提示主機是down的</code>
<code>#ping指令的-c選項控制ping測試的次數,-c2表示對目标主機執行2次ping測試</code>
<code>#ping指令的-i選項,控制多次ping測試的間隔時間預設為1秒,-i0.3可以提升ping的測試效率</code>
<code>#ping指令的-W選項,可以控制逾時時間,預設一個主機無法ping通,需要等很長的逾時時間,</code>
<code>#才會提示無法ping通,使用-W1,設定逾時時間為1秒。</code>
<code>i=1</code>
<code>while</code> <code>[ $i -</code><code>le</code> <code>254 ]</code>
<code>do</code>
<code> </code><code>ping</code> <code>-c2 -i0.3 -W1 192.168.4.$i &></code><code>/dev/null</code>
<code> </code><code>if</code> <code>[ $? –</code><code>eq</code> <code>0 ];</code><code>then</code>
<code> </code><code>echo</code> <code>"192.168.4.$i is up"</code>
<code> </code><code>else</code>
<code> </code><code>echo</code> <code>"192.168.4.$i is down"</code>
<code> </code><code>fi</code>
<code> </code><code>let</code> <code>i++</code>
<code>done</code>
2. 測試192.168.4.0/24整個網段的連通性(for版本)
<code>#定義for循環變量i,執行循環次數為254次,i從1循環到254</code>
<code>#每次循環對某一台目标主機測試ping的連通性,ping指令的文法格式參考前面的while版本</code>
<code>for</code> <code>i </code><code>in</code> <code>{1..254}</code>
3. 測試192.168.4.0/24整個網段的連通性(多程序版本)
<code>#定義一個函數,ping某一台主機,并檢測主機的存活狀态,ping文法格式參考前面的while版本</code>
<code>myping(){</code>
<code>ping</code> <code>-c2 -i0.3 -W1 $1 &></code><code>/dev/null</code>
<code>if</code> <code>[ $? -</code><code>eq</code> <code>0 ];</code><code>then</code>
<code>echo</code> <code>"$1 is up"</code>
<code>else</code>
<code>echo</code> <code>"$1 is down"</code>
<code>fi</code>
<code>}</code>
<code>for</code> <code>i </code><code>in</code> <code>{1..254}</code>
<code> </code><code>myping 192.168.4.$i &</code>
<code>#使用&符号,将執行的函數放入背景執行</code>
<code>#這樣做的好處是不需要等待ping第一台主機的回應,就可以繼續并發ping第二台主機,依次類推。</code>
<code></code>
本文轉自丁丁曆險51CTO部落格,原文連結:http://blog.51cto.com/manual/1971293 ,如需轉載請自行聯系原作者