Strona 1 z 1

[+] awk pomijanie wyniku ping

: 08 września 2010, 17:35
autor: redgrist
Mam taki skrypt do wyniku ping mrtg

Kod: Zaznacz cały

#!/bin/sh 
PING="/bin/ping"
ADDR="192.168.1.9"
DATA=`$PING -c10 $ADDR -q -s 4096`
LOSS=`echo $DATA | awk '{print $18 }' | tr -d %`
echo $LOSS
if [ $LOSS = 100 ];
then echo 0
else
echo $DATA | awk -F/ '{print $5 }'
fi
Niestety trzeba go zmodyfikować bo w przypadku braku odpowiedzi z hosta pojawia się
błędy, czyli:

Kod: Zaznacz cały

3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2014ms
, pipe 3
Ale jeśli jest odpowiedź to mamy:

Kod: Zaznacz cały

10 packets transmitted, 10 received, 0% packet loss, time 9006ms
rtt min/avg/max/mdev = 0.339/0.364/0.436/0.043 ms
Czyli brak jest wspomnianego błędu.

Skrypt daje wynik
ilość utraconych
czas

Jak zrobić aby błędy przy braku odpowiedzi zawsze były pomijane?

: 08 września 2010, 18:01
autor: lessmian2

Kod: Zaznacz cały

LOSS=`echo $DATA | perl -lne '/(\d{1,3})\% packet loss/; print $1'`
Może i można w awk, ale nie chce mi się szukać jak ;)

: 08 września 2010, 18:07
autor: redgrist
Działa, dziękuję. Może być i bez awk ;)