如果我們身為工程師或網絡管理員,那麼我們肯定遇到過這樣的情況,我們臨時要用到某個Ip地址,或我們要知道192.168.2.0這個網絡中所有的地址哪個被用掉了,你會怎麼做呢?還有,你要檢測一堆服務器中哪個服務器是正常運行的,哪個已經Down掉了。一個服務器一個服務器去查?噢no!!!這是個什麼樣的工作量啊!!關鍵是這樣做太繁瑣,下面我們來看個實例,用腳本快速探測一段網絡中哪個服務器是正常運行的,哪個是Down掉了的。
下圖就是我們掃描所需要的代碼了
我們來解釋一下
for num in {1..100}這個還是一個賦值語句,num等於1到100
host=192.168.2.$num這個的意思是
host=192.168.2.1……192.168.2.100
ping -c2 $host &>/dev/null這個就更簡單了,ping -c2是說ping兩次$host地址($host等於192.168.2.1.。。100),然後不管通了沒有,全部重定向到null,就是說丟棄
if [$?=0]; then
echo "$host is UP"
else
echo "$host ip Down"
fi
done
這個的意思就是說,如果$?=0,那麼顯示$host is up,這裡的$host就是指單個的了,如果$?不等於0,那麼顯示$host is down
其他的好理解,那什麼叫$?,這是個神馬玩意兒??
$?是linux中的一個對於上次執行結果的一個反饋,如果上次執行時成功的,那$?就是0,如果不成功,就是1,我們來試試
如下圖,我們執行了ls命令,成功的顯示了/下的文件,那麼$?就是0
我們再來看這個,ping 10.0.0.1是不通的,沒執行成功,那$?就是1
好了,理解完我們來運行一下
完美成功!!