Jeśli chcesz tylko uzyskać wartość, możesz użyć prostego onelinera powłoki w następujący sposób:
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 S=10
parametr, i możesz zmierzyć przesłane BPS zamiast odebranych używając tx_bytes
zamiast rx_bytes
). Nie zapomnij się zmienićeth0
urządzenia sieciowego, które chcesz monitorować.
Oczywiście nie jesteś ograniczony do wyświetlania średniej stawki (jak wspomniano w innych odpowiedziach, istnieją inne narzędzia, które pokażą Ci znacznie ładniejsze wyniki), ale to rozwiązanie jest łatwe do skryptu, aby robić inne rzeczy.
Na przykład następujący skrypt powłoki (podzielony na wiele wierszy w celu zwiększenia czytelności) wykona proces offlineimap tylko wtedy, gdy średnia 5-minutowa prędkość transmisji spadnie poniżej 10 kB / s (przypuszczalnie, gdy zakończy się inny proces pochłaniający przepustowość):
#!/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
Zauważ, że /sys/class/...
jest to specyficzne dla Linuksa (co jest w porządku, ponieważ przesyłający wybrał linux
tag) i wymaga niearchaicznego jądra. Sam kod powłoki jest kompatybilny z / bin / sh (więc nie tylko bash, ale także dash i inne implementacje / bin / sh będą działać), a / bin / sh to coś, co jest naprawdę zawsze instalowane.