#!/bin/bash
#同時測試4條線路,所以設定4個TMP檔
for q in 1 2 3 4; do
eval TMP$q=/root/zh/pp/pg$q.tmp
done
date=$(date +%Y%m%d)
dates=$(date +%Y%m%d_%H%M%S)
#每天一個檔案
datepp=/root/zh/pp/pg_${date}.log
#清除暫存檔
rm -f /root/zh/pp/pg*.tmp
#利用 function 來跑,只顯示最下面兩行統計
function p1(){
echo "8.8.8.8" >> $TMP1
ping -c 1000 "8.8.8.8" | grep -v "8.8.8.8" | awk -F, 'NR==2,NR==3{print }' >> $TMP1
}
function p2(){
echo "8.8.4.4" >> $TMP2
ping -c 1000 "8.8.4.4" | grep -v "8.8.4.4" | awk -F, 'NR==2,NR==3{print }' >> $TMP2
}
function p3(){
echo "168.95.1.1" >> $TMP3
ping -c 1000 "168.95.1.1" | grep -v "168.95.1.1" | awk -F, 'NR==2,NR==3{print }' >> $TMP3
}
function p4(){
echo "168.95.192.1" >> $TMP4
ping -c 1000 "168.95.192.1" | grep -v "168.95.192.1" | awk -F, 'NR==2,NR==3{print }' >> $TMP4
}
#把開始時間寫入檔案內
echo "${dates}_Start" >> $datepp
#跑4次迴圈來跑4個 function
i=1
while [ "$i" -le "4" ];do
p$i &
i=`expr $i + 1`
done
# 等4個process都執行完
wait
#讀取4個TMP檔寫入同一個檔案內
for j in 1 2 3 4; do
eval "cat \$TMP$j >> $datepp
done
#結束時間
datee=$(date +%Y%m%d_%H%M%S)
echo "${datee}_End" >> $datepp
#清除暫存檔
rm -f /root/zh/pp/pg*.tmp
上面是固定 ping 1000 次然後顯示結果,把下面幾個地方改掉後、可以自訂 ping 的次數
"ping -c 1000" 改成 "ping -c $1"
"p$i &" 改成 "p$i $1 &"
執行時變成
"./test.sh" 改成 "./test.sh 10"
參考資料
http://www.ptt.cc/bbs/Linux/M.1258710577.A.296.html
http://www.ptt.cc/bbs/Linux/M.1390400451.A.B51.html
0 意見:
張貼留言