Portál AbcLinuxu, 12. května 2025 07:01

Dotaz: Script pro vypis aritmetickeho průměru pingu

Indiánský lotr avatar 19.5.2010 23:45 Indiánský lotr | skóre: 25 | blog: ucim_sa
Script pro vypis aritmetickeho průměru pingu
Přečteno: 234×
Odpovědět | Admin

Ahoj, po pul hodine hledani a zkoumani jak to funguje jsem si napsal tenhle malý skriptník na zjišťování pingu v čistém textu bez omáčky, ale řeším jak vypsat aritmetický průměř třeba z 5ti vrácencýh hodnot.

#!/bin/bash
PINGnet=`ping seznam.cz -c 5 | grep time= | awk '{print $8}' | sed 's/time=//'`
echo -n "$PINGnet"

Jde to vyřešit přes cyklus for, nebo se bude muset zavolat nějaká další funkce?


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jakub Lucký avatar 20.5.2010 00:16 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Script pro vypis aritmetickeho průměru pingu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ping počítá průměrný čas sám, uvede ho na konci toho výpisu (poslední řádek)

Zde je příkaz na výpis jen jeho:

ping -c5 seznam.cz | tail -n1 | awk -F"/" '{print $5}'
If you understand, things are just as they are; if you do not understand, things are just as they are.
Indiánský lotr avatar 20.5.2010 00:28 Indiánský lotr | skóre: 25 | blog: ucim_sa
Rozbalit Rozbalit vše Re: Script pro vypis aritmetickeho průměru pingu
:-) dík, snažil jsem se najít info i o pingu, ale nakonec sem to řešil tímto dost nešikovným způsobem, tohle je paráda :-) jen by to chtělo ošetřit výpis tak aby vypisoval jen 1 desetiiné číslo a bylo by to dokonale, podívám se do manualu k awk ať to pořádně pochopím
20.5.2010 00:40 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: Script pro vypis aritmetickeho průměru pingu
Jo, tail je také na tom seznamu, co je ve rouře s awk a sed navíc. Zhruba totéž s o 50% menším počtem procesů:
ping -c 5 -q seznam.cz | awk -F'/' '/^rtt min/{print($5)}'
Variantně:
ping -c 5 -q seznam.cz | sed -ne 's#^\([^/]*/\)\{4\}\([^/]*\)/.*$#\2#p'
20.5.2010 00:43 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: Script pro vypis aritmetickeho průměru pingu
A, pardon, já použil sed, abych tam zamontoval ten tail na poslední řádek, a pak jsem tam ten $ do adresy nedal:
ping -c 5 -q seznam.cz | sed -ne '$s#^\([^/]*/\)\{4\}\([^/]*\)/.*$#\2#p'
Pokud chcete říznout poslední dvě čísla (ale nebude to správně zaokrouhlené, stačí minimální změna:
ping -c 5 -q seznam.cz | sed -ne '$s#^\([^/]*/\)\{4\}\([^/]*\)../.*$#\2#p'
Indiánský lotr avatar 20.5.2010 00:49 Indiánský lotr | skóre: 25 | blog: ucim_sa
Rozbalit Rozbalit vše Re: Script pro vypis aritmetickeho průměru pingu
paráda :-) minimální odchylka mi nevadí, je to jen přídavek do menu baru abych měl přehled o vytíženosti sítě s periodou 1minuta,děkuju moc
20.5.2010 00:26 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: Script pro vypis aritmetickeho průměru pingu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Obecná poznámka. Obvykle nemá ceny volat grep, awk a sed ve zřetězených rourách. Něco je špatně, protože to samé zvládne jenom awk nebo jenom sed na s jediným forkem a netřeba spouštět hromadu procesů.

Třeba to, co chcete vy:
... | sed -ne 's#^.* time=\([^ ]*\) ms$#\1#p'
Nicméně zde bychom vymýšleli již vymyšlené, (linuxový) ping Vám na konci ve vrátí základní přehled, stačí si to vyzobnout z něj (Váš průměr tučně):
$ ping -c 5 -q pinged_host
PING pinged_host (xxx.yyy.zzz.aaa) 56(84) bytes of data.

--- pinged_host ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 0.794/2.886/7.991/2.763 ms
http://prirucka.ujc.cas.cz/?ref=785&id=790.

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.