Portál AbcLinuxu, 19. dubna 2024 21:23


Dotaz: vypis chybovosti prikazu ping pomoci bash

29.1.2007 10:15 vasek
vypis chybovosti prikazu ping pomoci bash
Přečteno: 201×
Odpovědět | Admin
Dobry den,
potreboval bych vytvorit v bashi vystup pro prikaz ping.A to tak aby po prikazu
ping -c50 192.168.0.1 
se vypsala hodnota ktera vyjadruje chybovost /bez znaku %/ a kteto hodnote jeste pricist hodnotu 100.Jestlize by tedy byla chybovost 5% tak abz to vyhodilo cislo 105
Vasek
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.1.2007 10:22 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: vypis chybovosti prikazu ping pomoci bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Když se naučíš dobře pracovat s sed a awk tak to jenom prospěje..
29.1.2007 10:30 boar | skóre: 25 | Praha
Rozbalit Rozbalit vše Re: vypis chybovosti prikazu ping pomoci bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
jojo heledej man sed man awk

taky hezka vec je fping (trosku "lepci" ping)
29.1.2007 10:51 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: vypis chybovosti prikazu ping pomoci bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pre ten účel sa dá upraviť ping.sh (funkcia ping_host). Napr.:
#!/bin/sh

PING=ping
DEADLINE=10

ping_host() {
    local output=$($PING -q -n -c $1 -w $DEADLINE $2 2>&1)
    local temp=$(echo "$output"| awk '
        BEGIN           {pl=100}
        /packets transmitted/	{
            match($0, /([0-9]+)% packet loss/, matchstr)
            pl=matchstr[1]
        }
        /unknown host/  {
            # no output at all means network is probably down
            pl=100
        }
        END {print pl + 100}
        ')
    RETURN_VALUE=$temp
}

ping_host 50 www.abclinuxu.cz

echo $RETURN_VALUE
Samozrejme by bolo lepšie, ako už bolo odporučené, naučiť sa sed a awk (aj ja by som to asi niekedy mal urobiť) :)
29.1.2007 11:08 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: vypis chybovosti prikazu ping pomoci bash
To DEADLINE sa môže vynechať, alebo ho treba upraviť na primeranú hodnotu (man ping).
29.1.2007 10:58 ABCLinuxuIsAlive | skóre: 12 | blog: Cubix | Nodnol
Rozbalit Rozbalit vše Re: vypis chybovosti prikazu ping pomoci bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
tak tohle je nejrychlejsi (rozumnej casove mi zabrala nejmene) verze, jakou jsem nasel:
lost_plus_sto=$((`ping -c50 127.0.0.1 | tail -n 2 | head -n 1 | sed "s/.*received, //" | sed "s/%.*//"` + 100))
Nejsem povinen byt takový, jaký bych podle ostatních měl být. Je to jejich omyl, ne moje selhaní.
29.1.2007 11:00 ABCLinuxuIsAlive | skóre: 12 | blog: Cubix | Nodnol
Rozbalit Rozbalit vše Re: vypis chybovosti prikazu ping pomoci bash
nebo teda
echo $((`ping -c50 127.0.0.1 | tail -n 2 | head -n 1 | sed "s/.*received, //" | sed "s/%.*//"` + 100))
... kdyz to potrebujes vypsane ..
Nejsem povinen byt takový, jaký bych podle ostatních měl být. Je to jejich omyl, ne moje selhaní.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.