Jeśli chcesz po prostu uzyskać wartość, można użyć prostego skorupę oneliner tak:
S=10; F=/sys/class/net/eth0/statistics/rx_bytes; X=`cat $F`; sleep $S; Y=`cat $F`; BPS="$(((Y-X)/S))"; echo $BPS
Pokaże ci średnią "odebranych bajtów na sekundę" przez okres 10 sekund (możesz zmienić okres, zmieniając parametr S=10
i możesz zmierzyć przesyłany BPS zamiast odebranego BPS przy użyciu tx_bytes
zamiast rx_bytes
). Nie zapomnij zmienić eth0
na urządzenie sieciowe, które chcesz monitorować.
Oczywiście nie jesteś ograniczony do wyświetlania średniej stawki (jak wspomniano w innych odpowiedziach, są inne narzędzia, które pokażą ci dużo lepsze wyniki), ale to rozwiązanie jest łatwo skryptowalne, aby robić inne rzeczy.
Na przykład, następujące skrypt (podzielone na kilka linii dla czytelności) wykona offlineimap procesu tylko po 5 minut Średnia szybkość transmisji spada poniżej 10 KBps (zapewne po zakończeniu inny proces pasma czasochłonne)
#!/bin/sh
S=300; F=/sys/class/net/eth0/statistics/tx_bytes
BPS=999999
while [ $BPS -gt 10000 ]
do
X=`cat $F`; sleep $S; Y=`cat $F`; BPS="$(((Y-X)/S))";
echo BPS is currently $BPS
done
offlineimap
Należy pamiętać, że /sys/class/...
jest specyficzne dla systemu Linux (co jest dobre, ponieważ nadawca wybrał znacznik linux
) i potrzebuje nie archaicznego jądra. Sam kod powłoki jest zgodny/bin/sh (więc nie tylko bash, ale dash i inne/bin/sh implementations będzie działać) i/bin/sh jest czymś, co jest naprawdę zawsze zainstalowane.
Zakłada, że dostęp root jest dostępny – Lionel
(zwykle) Nie musisz być rootem, aby uruchomić to ... – confiq
/sbin/ifconfig? – russoue