Wenn Sie nur den Wert erhalten möchten, können Sie einen einfachen Shell-Oneliner wie folgt verwenden:
S=10; F=/sys/class/net/eth0/statistics/rx_bytes; X=`cat $F`; sleep $S; Y=`cat $F`; BPS="$(((Y-X)/S))"; echo $BPS
Es zeigt Ihnen den Durchschnitt der "empfangenen Bytes pro Sekunde" für einen Zeitraum von 10 Sekunden (Sie können den Zeitraum ändern, indem Sie die S=10
Parameter ändern , und Sie können den übertragenen BPS anstelle des empfangenen BPS messen, indem Sie tx_bytes
anstelle von verwenden rx_bytes
). Vergessen Sie nicht, zu eth0
dem Netzwerkgerät zu wechseln , das Sie überwachen möchten.
Natürlich sind Sie nicht darauf beschränkt, die Durchschnittsrate anzuzeigen (wie in anderen Antworten erwähnt, gibt es andere Tools, die Ihnen eine viel schönere Ausgabe zeigen), aber diese Lösung ist leicht skriptfähig, um andere Dinge zu tun.
Beispielsweise führt das folgende Shell-Skript (aus Gründen der Lesbarkeit in mehrere Zeilen aufgeteilt) den Offlineimap-Prozess nur aus, wenn die durchschnittliche Übertragungsgeschwindigkeit von 5 Minuten unter 10 kBPS fällt (vermutlich, wenn ein anderer bandbreitenintensiver Prozess abgeschlossen ist):
#!/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
Beachten Sie, dass dies /sys/class/...
Linux-spezifisch ist (was in Ordnung ist, da der Übermittler das linux
Tag ausgewählt hat) und einen nicht archaischen Kernel benötigt. Der Shell-Code selbst ist / bin / sh-kompatibel (damit nicht nur Bash, sondern auch Dash- und andere / bin / sh-Implementierungen funktionieren) und / bin / sh ist wirklich immer installiert.