[+] awk pomijanie wyniku ping

Potrzebujesz pomocy z C, C++, perl, python, itp.
redgrist
Posty: 64
Rejestracja: 23 kwietnia 2010, 11:19
Lokalizacja: Trójmiasto

[+] awk pomijanie wyniku ping

Post 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?
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post 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 ;)
redgrist
Posty: 64
Rejestracja: 23 kwietnia 2010, 11:19
Lokalizacja: Trójmiasto

Post autor: redgrist »

Działa, dziękuję. Może być i bez awk ;)
ODPOWIEDZ