Wie kann ich über die Linux-Befehlszeile die Bandbreite einer Schnittstelle in jeder Sekunde abrufen?

3114
Alex

Ich mache ein Schulprojekt, bei dem ich die Bandbreite einer Netzwerkschnittstelle in jeder Sekunde oder in einer anderen kleinen Zeitspanne erhalten möchte. Ich brauche das für ein Perl-Skript, an dem ich arbeite. Daher muss es nicht interaktiv sein und nur Ergebnisse ausdrucken.

Irgendwelche Vorschläge?

3

2 Antworten auf die Frage

3
Gilles

Die Anzahl der gesendeten und empfangenen Bytes durch, eth0da die Schnittstelle erzogen wurde eingelesen werden können /sys/class/net/eth0/statistics/tx_bytesund /sys/class/net/eth0/statistics/rx_bytesjeweils. Die Anzahl der Pakete eingelesen werden …/tx_packetsund …/rx_packets. Wenn Sie über einen älteren Kernel verfügen, der diese Dateien nicht zur Verfügung stellt, sind die Daten in der Ausgabe von verfügbar /sbin/ifconfig eth0.

Genau das, wonach ich gesucht habe. Alex vor 13 Jahren 0
0
vtest

Ein einfacher Ansatz wäre:

  • ifconfig ausführeninterface name einmal aus, erfassen Sie dessen Ausgabe
  • extrahiere die Werte aus "RX Bytes" und "TX Bytes"
  • Warten Sie eine Sekunde
  • Wiederholen Sie die ersten beiden Schritte noch einmal
  • Berechne die Deltas
Gute Antwort auch! Die Lösung von Gilles funktioniert in meinem Fall einfach perfekt. Alex vor 13 Jahren 0