1. 測試192.168.4.0/24整個網段的連通性(while版本)
#!/bin/bash#Author:丁丁歷險(Jacob)#定義變量i控制循環次數,i從1開始循環,每循環一次,i自加1,直到i等于254循環退出#在每次循環中對一個IP進行ping測試,如果ping通,提示主機是UP的#如果無法ping同,則提示主機是down的#ping命令的-c選項控制ping測試的次數,-c2表示對目標主機執行2次ping測試#ping命令的-i選項,控制多次ping測試的間隔時間默認為1秒,-i0.3可以提升ping的測試效率#ping命令的-W選項,可以控制超時時間,默認一個主機無法ping通,需要等很長的超時時間,#才會提示無法ping通,使用-W1,設置超時時間為1秒。i=1while [ $i -le 254 ]do ping -c2 -i0.3 -W1 192.168.4.$i &>/dev/null if [ $? –eq 0 ];then echo "192.168.4.$i is up" else echo "192.168.4.$i is down" fi let i++done
2. 測試192.168.4.0/24整個網段的連通性(for版本)
#!/bin/bash#Author:丁丁歷險(Jacob)#定義for循環變量i,執行循環次數為254次,i從1循環到254#每次循環對某一臺目標主機測試ping的連通性,ping命令的語法格式參考前面的while版本for i in {1..254}do ping -c2 -i0.3 -W1 192.168.4.$i &>/dev/null if [ $? –eq 0 ];then echo "192.168.4.$i is up" else echo "192.168.4.$i is down" fidone3. 測試192.168.4.0/24整個網段的連通性(多進程版本)
#!/bin/bash#Author:丁丁歷險(Jacob)#定義一個函數,ping某一臺主機,并檢測主機的存活狀態,ping語法格式參考前面的while版本myping(){ping -c2 -i0.3 -W1 $1 &>/dev/nullif [ $? -eq 0 ];thenecho "$1 is up"elseecho "$1 is down"fi}for i in {1..254}do myping 192.168.4.$i &done#使用&符號,將執行的函數放入后臺執行#這樣做的好處是不需要等待ping第一臺主機的回應,就可以繼續并發ping第二臺主機,依次類推。總結
以上所述是小編給大家介紹的shell腳本測試某網段內主機連通性,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林站長站網站的支持!
新聞熱點
疑難解答