Tools wie MRTG bieten Diagramme zum Netzwerkdurchsatz / zur Bandbreite für die aktuelle Netzwerkauslastung auf bestimmten Schnittstellen wie eth0. Wie kann ich diese Informationen unter Linux / UNIX über die Befehlszeile zurückgeben?
Dies wäre vorzugsweise ohne Installation von etwas anderem als dem, was standardmäßig auf dem System verfügbar ist.
linux
networking
bandwidth
Davidmytton
quelle
quelle
bmon
was hilfreich ist. github.com/tgraf/bmon#screenshotsAntworten:
Sie können die Ausgabe von analysieren
ifconfig
quelle
while true; do export `ifconfig p1p1 | grep packets | awk '{print $5, $3}' | xargs echo | sed -E -e "s/([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)/rx=\1 rxp=\2 tx=\3 txp=\4/"` ; echo $rx $rxp $tx $txp `cat /tmp/netstat` | awk '{print $1-$5, $2-$6, $3-$7, $4-$8}';echo $rx $rxp $tx $txp > /tmp/netstat; sleep 5 ;done
-bash: export:
Einzeiler zu Überläufen: 0 ': keine gültige Kennung` für mich auf RHEL6. Das Parsen/sys/class/net/$dev/statistics
(siehe das Perl-Skript in der Antwort von @ephemient) funktioniert direkt viel besser.iftop does for network usage what top(1) does for CPU usage
- http://www.ex-parrot.com/~pdw/iftop/Ich weiß nicht, wie "Standard" iftop ist, aber ich konnte es mit
yum install iftop
auf Fedora installieren .quelle
iftop
kann auch auf einer sauberen Ubuntu-Installation einfach installiert werden :apt-get install iftop
.pacman -S iftop
tcpdump
Ausgabe erneut zu analysieren, aufschiebe . Danke diriftop
undwireshark
, dass ich so faul sein darf.iftop
detaillierter ist und Statistiken pro Verbindung enthält.iftop
Sie für Benutzer ohne Administratorrechte, dass eine Installation erforderlich ist (Sie können sie nicht einmal ohnelibpcap
Installation erstellen ), und auf der Homepage steht, dass sie ausgeführt werden mussroot
.Hast du Sar? Wahrscheinlich ja, wenn Sie RHEL / CentOS verwenden.
Keine Notwendigkeit für priv, dorky Binärdateien, hacky Skripte, libpcap usw. Win.
quelle
Ich habe dieses dumme Skript vor langer Zeit geschrieben, es hängt nur von Perl und Linux ≥ 2,6 ab:
Es liest nur aus
/sys/class/net/$dev/statistics
jeder Sekunde und druckt die aktuellen Zahlen und die durchschnittliche Änderungsrate aus:quelle
/proc/net/dev
oder Daten auf Basis pro Sekunde irgendwie anders berechnen?nload ist ein großartiges Tool zur Überwachung der Bandbreite in Echtzeit und kann problemlos in Ubuntu oder Debian mit sudo apt-get install nload installiert werden.
Ein weiteres hervorragendes Werkzeug ist iftop , das ebenfalls leicht zu bekommen ist:
Vergessen Sie nicht die klassischen und leistungsstarken Dienstprogramme sar und netstat auf älteren * nix!
quelle
Sie könnten / proc / net / dev analysieren .
quelle
/sys/class/net/$dev/statistics
wie in Ephemients Skript zu sein.dstat
- Kombiniert vmstat-, iostat-, ifstat-, netstat-Informationen und mehriftop
- Erstaunliches Dienstprogramm zur Netzwerkbandbreite, um zu analysieren, was wirklich auf Ihrem eth passiertnetio
- Misst den Nettodurchsatz eines Netzwerks über TCP / IPinq
- Dienstprogramm zur CLI-Fehlerbehebung, das Informationen zum Speicher anzeigt, normalerweise Symmetrix. Standardmäßig gibt INQ den Gerätenamen, die Symmetrix-ID, die Symmetrix-LUN und die Kapazität zurück.send_arp
- Sendet eine Arp-Übertragung auf dem angegebenen Netzwerkgerät (standardmäßig eth0) und meldet eine alte und eine neue IP-Adresszuordnung an eine MAC-Adresse.EtherApe
- ist ein grafischer Netzwerkmonitor für Unix nach dem Vorbild von Etherman. Mit den Verbindungsschicht-, IP- und TCP-Modi wird die Netzwerkaktivität grafisch angezeigt.iptraf
- Ein IP-Verkehrsmonitor, der Informationen zum IP-Verkehr über Ihr Netzwerk anzeigt.Weitere Details: http://felipeferreira.net/?p=1194
quelle
Dafür habe ich noch ein schnelles Bash-Skript bekommen:
Es wird darüber nachgedacht
sleep 1
tatsächlich genau eine Sekunde dauern wird, was nicht stimmt, aber gut genug für eine grobe Bandbreitenbewertung ist.Danke an @ephemient für das
/sys/class/net/<interface>
! :) :)quelle
let BWRX=($RX-$RXPREV)/1024
(obwohl ich jetzt nichts zu testen habe)Überprüfen Sie neben iftop und iptraf auch:
bwm-ng
(Bandbreitenmonitor der nächsten Generation)und / oder
cbm
(Farbbandbreitenmesser)Ref: http://www.powercram.com/2010/01/bandwidth-monitoring-tools-for-ubuntu.html
quelle
Wenn Sie nur den Wert erhalten möchten, können Sie einen einfachen Shell-Oneliner wie folgt verwenden:
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 Sietx_bytes
anstelle von verwendenrx_bytes
). Vergessen Sie nicht, zueth0
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):
Beachten Sie, dass dies
/sys/class/...
Linux-spezifisch ist (was in Ordnung ist, da der Übermittler daslinux
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.quelle
Ich mag,
iptraf
aber Sie müssen es wahrscheinlich installieren und es scheint nicht mehr aktiv gewartet zu werden.quelle
Ich finde dstat ziemlich gut. Muss allerdings installiert werden. Gibt Ihnen viel mehr Informationen als Sie brauchen. Netstat gibt Ihnen Paketraten, aber auch keine Bandbreite. netstat -s
quelle
Sie können iperf verwenden, um die Netzwerkleistung zu messen ( maximal möglicher Durchsatz ). Siehe folgende Links für Details:
http://en.wikipedia.org/wiki/Iperf
https://iperf.fr/
https://code.google.com/p/iperf/
quelle
Ich konnte das Parse-ifconfig-Skript nicht für mich auf einem AMI verwenden, sodass es funktioniert, um den empfangenen Datenverkehr im Durchschnitt über 10 Sekunden zu messen
Sorry, es ist immer so billig und böse, aber es hat funktioniert!
quelle
Wenn Sie die Ausgabe von (ifconfig -a) im JSON-Format wünschen, können Sie diese (Python) verwenden.
quelle