0

私は、IP アドレスのリストを循環し、パケット損失のパーセンテージをエコー出力する、便利でダンディなシェル スクリプトを持っています (以下)。

パーセンテージが 0.0% に等しくない場合にのみ結果をエコー出力するように、if/then ステートメントを織り込みたいと思います。

あなたの提案は大歓迎です!

#!/bin/bash
HOSTS="192.168.99.24 192.168.99.23"
COUNT=10
SIZE=1400
for myHost in $HOSTS
do

   ping -q -n -s $SIZE -c $COUNT $myHost | awk -v host=$myHost '/packet loss/ {print host, $7}'

done
4

2 に答える 2

1

$7パーセンテージだと思います(それは私のため$6です)。awkスクリプトに追加の条件を追加するだけです。

awk -v host=$myHost '/packet loss/ && $7!="0%" {print host, $7}'
于 2012-08-24T21:27:11.037 に答える
0

各ホストが生きているかどうかをホストのリストで確認したいだけなら、pingこの目的のために at all を使用するのfpingをやめて を使用することpingをお勧めします.

$ fping -q -c $COUNT -b $SIZE $HOSTS | grep ': xmt' | grep -v '%loss = .*/0%'
192.168.1.2 : xmt/rcv/%loss = 12/0/100%
192.168.1.3 : xmt/rcv/%loss = 12/0/100%
192.168.1.4 : xmt/rcv/%loss = 12/0/100%

hereの呼び出しはgrep、(1) 結果の行のみを grep するために使用されます。(2) 次のように、0% の損失で不要な行を削除します。

192.168.1.1 : xmt/rcv/%loss = 12/12/0%, min/avg/max = 1.08/1.11/1.19

fping数百万のホストまで非常にうまくスケールし、ファイル内のホストのリストを ping するために使用できます。

fping -q -c $COUNT -b $SIZE -f <host-list.txt | grep ': xmt' | grep -v '%loss = .*/0%'
于 2012-08-25T20:17:04.450 に答える