背景
公司某一項業務需要管理多種類硬件,有一些硬件的管理功能沒有實現前台展示,檢測和硬件之間的網絡連接狀況需要通過ping每個ip地址來單獨實現。在需要大規模調試網絡的時候,每個硬件單獨ping就顯得效率太低,所以萌生了寫一個ping腳本的想法,來實現運行腳本自動ping ip地址列表,並生成成功和失敗兩個文件。
實現
事先把ip地址和對應的名稱存儲在ipaddresses文件中。
ipaddresses文件如下:
10.43.11.248#內飾1號門
10.145.225.2#同泰2號門
10.145.225.4#同泰3號門
實現讀取文件中的一行數據,按照分割符#獲取到ip地址即可開始ping,生成兩個文件ipup.txt和ipdown.txt
腳本代碼如下:
#!/bin/bash
#reading data from a file
count=1
cat ipaddresses | while read line
do
echo "Line $count: $line"
ip=`echo "$line" | awk -F# '{print $1}'`
ping -c 2 -W 1 $ip &> /dev/null
if [ "$?" == "0" ];then
echo $line is UP
echo $line is UP >> /data/sg/ipup.txt
#break;
else
echo $line is DOWN
echo $line is DOWN >> /data/sg/ipdown.txt
fi
count=$[ $count + 1 ]
done
echo finished processing the file