Portál AbcLinuxu, 9. listopadu 2025 17:34
ifstat. Pravděpodobně dělám někde nějaký kopanec, ale zaboha nemůžu přijít na to, kde
Pokud zadám ifstat -i eth0 | grep "[0-9]\+[\.][0-9]\+", tak je všechno OK a na STDOUT mi naskakují dva sloupce s čísly.
Pokud ale přidám na konec ještě další rouru (např. ifstat -i eth0 | grep "[0-9]\+[\.][0-9]\+" | awk '{print $2}', tak jsem v *** a na STDOUTu je ticho jak na západní frontě...
Nevíte někdo, kde dělám nějakou totálně lamerskou chybu?
strace
strace jsem z toho magor úplně. Všechno se tváří OK až na to, že to nic nedělá (pokud pominu hlášky z strace)
ifstat vypisuje na začátku sekvence "záhlaví", které potřebuju vymazat. Takže nejjednodušší filtr, co mě napadl je ifstat -i eth0 | sed -n /[\.]/p (případně s grepem, je to jedno, chová se to stejně), čímž mi na výpis lezou jen čísla. A pak bych to potřeboval nasměrovat na standarni vstup skriptu, který mi vykresluje "realtime" graf (přes gnuplot). Takže defacto tohle: ifstat -i eth0 | sed -n /[\.]/p | muj_gnuplot_skript
A problém je, že ty první dva příkazy si ten STDOUT syslí pro sebe okmažitě, jak za ně fláknu jakoukoliv rouru. Jakmile killnu ten ifstat, tak mi ten poslední v řadě vyblije na výstup to, co očekávám. Ale do té doby ani ťuk.
ifstat > ifstat.log a odebirat pres tail nebo ten gnuplot skript?
gnuplot, ale co mě na tom především zaráží, že to nejde jednoduše (resp. ani složitě) řetězit pomocí klasické roury. Vysloveně mi to "rozmr*alo na atomy moje životní jistoty" a pořád jsem hledal chybu někde u sebe. Ale vypadá to, že krpa je někde jinde... :-|
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.