1、執行過程
目的IP地址列表
批量PING腳本
設置腳本文件運行權限chmod +x check_iplist_forHeartbeatDst.sh
執行腳本(回顯執行進度)./check_iplist_forHeartbeatDst.sh
執行結果cat ipcheckdown.txt
2、腳本內容
#!/bin/bash
#
#讀取IP列表行數
lineNumber=`cat iplist.txt |wc -l`
#設置計數參數
count=0
#循環讀取IP並測試
for i in `cat ./iplist.txt`
do
#計數器
count=$((count+1))
echo "${i} ${count}/${lineNumber}"
#PING並保留丟包數
p=`ping -c 1 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'`
#丟包=0則PING成功,否則失敗
if [ $p -eq 0 ]
then
echo "${i} true" >> ./ipcheckdown.txt
else
echo "${i} fail" >> ./ipcheckdown.txt
fi
done
注:通過Windows系統編輯的文件在Linux中執行時,若由於文件格式問題導致報錯,例如:
(1)腳本字符格式異常:
【/bin/bash^M: 壞的解釋器: 沒有那個文件或目錄】
(2)IP列表格式問題導致腳本讀取IP異常:
(3)問題原因:
在Windows下每一行結尾是nr,而Linux下則是n,所以才會有多出來的r。
修改方式:
使用指令 sed -i 's/\r$//' 文件名
,將上面的指令會把文件中的r 替換成空白。