2012-08-24 4 views
0

나는 IP 주소 목록을 순환하고 패킷 손실 백분율 (아래)을 반향시키는 편리한 멋장이 쉘 스크립트를 가지고있다.간단한 핑 스크립트에 조건절 추가하기

%가 0.0 %가 아닌 경우 결과를 반향시키기 위해 if/then 문을 짜고 싶습니다.

귀하의 제안에 감사드립니다! 내가 $7 있으리라 믿고있어

#!/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 

답변

1

는 비율 (나를 위해 $6있어)입니다. awk 스크립트에 여분의 조건을 넣기 만하면됩니다. 각 호스트가 살아인지 아닌지 그냥 호스트의 목록을 확인하려면

awk -v host=$myHost '/packet loss/ && $7!="0%" {print host, $7}' 
0

것은, 나는이 목적을 위해 모든 ping를 사용하여 도랑 훨씬 더 스크립트입니다 fping을 사용하는 것이 좋을 것 일반보다 ping 하나의 라이너에이 문제를 해결한다 : 여기에 사용되는 grep

$ 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% 

호출이 (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%' 
관련 문제