Wie kann ich mithilfe integrierter Linux-Tools die aktuelle Bandbreitennutzung über die Befehlszeile abrufen?

Wie kann ich mithilfe integrierter Linux-Tools die aktuelle Bandbreitennutzung über die Befehlszeile abrufen?

Ich suche nach einer guten Möglichkeit, die aktuelle Gesamtbandbreitennutzung auf einem Linux-Rechner zu ermitteln. Ich habe es mit und versucht iftop, nethogsaber sie zeigen nicht die tatsächliche Bandbreitennutzung im Vergleich zum Systemmonitor an; sie entsprechen nicht den Anforderungen meines Projekts. Ich möchte einen Befehl, den ich ausführe und der die aktuelle Nutzung für Upload und Download zurückgibt und sonst nichts.

Ich möchte es auch mit nativen Linux-Tools machen, ohne etwas installieren zu müssen. Tatsächlich erstelle ich eine Überwachungsanwendung und möchte, dass sie Computer überwachen kann, ohne dass der Benutzer auf jedem Computer, den er überwachen möchte, etwas installieren muss. Das wäre großartig!

Antwort1

Verwenden iptraf-http://www.linuxcommand.org/man_pages/iptraf8.html

Es handelt sich um ein auf Ncurses basierendes Befehlszeilenprogramm, das Ihnen Statistiken zu allen Schnittstellen des Computers liefern kann – einschließlich der Bandbreitennutzung.

Antwort2

Es gibt viele Tools, die Sie verwenden können: nload, bmon, iftop, vnstat, ifstat... und wenn Sie nur einen bestimmten Teil der Ausgabe erhalten möchten (beispielsweise Hoch- und Herunterladen), bin ich ziemlich sicher, dass Sie die Ausgabe grep/ cut/ awkso anpassen können, dass sie für Sie funktioniert.

18 Befehle zum Überwachen der Netzwerkbandbreite auf einem Linux-Server

Antwort3

sysstat sammelt auch Netzwerkdaten. Wenn Sie „man sar“ ausführen, werden Ihnen alle Ressourcen angezeigt, für die Sie historische Daten speichern können.

Richten Sie es ein, indem Sie in cron den Befehl "/usr/lib/sa/sa1" (oder /usr/lib64/sa/sa1) eingeben und ihn jedes Mal ausführen lassen, wenn Sie einen Datenpunkt benötigen (z. B. alle 5 Minuten).

Anschließend können Sie „sar“ verwenden, um Ihre Daten anzuzeigen. Die Standardeinstellung ist heute. Sie können auch historische Daten für bis zu 30 Tage anzeigen. Sie können Ihre Daten auch archivieren, sodass Sie sie für immer behalten können (die Daten pro Tag sind etwa 8 MB groß).

Für die Netzwerkverbindung verwenden Sie „sar -n“

Wunderbares Werkzeug :)

Ein Beispiel:

 testlinux:~ # sar -n DEV | head -10
 Linux 2.6.16.60-0.21-default (pCITFileSvr01)    11/07/10

 00:00:01        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
 00:05:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 00:05:01         eth0      9.95      0.12      1.42      0.02      0.00      0.00      0.00
 00:10:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 00:10:01         eth0     10.20      0.04      1.44      0.00      0.00      0.00      0.00
 00:15:01           lo      0.00      0.00      0.00      0.00      0.00       0.00      0.00
 00:15:01         eth0     10.32      0.12      1.50      0.02      0.00      0.00      0.00
 00:20:01           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
 testlinux:~ #

Antwort4

Okay, nachdem ich ein bisschen recherchiert habe, fand ichDasLösung in Kürze, es verwendet, netstatum die Netzwerknutzung zusammenzufassen. Hier ist mein modifizierter Befehl

netstat -e -n -i | grep wlan0  -A 5 | grep 'RX packets' |  tail -1

Ausgabebeispiel: -

RX packets 76639  bytes 73706194 (70.2 MiB)

Ändern Sie wlan0den Namen Ihrer Kartenschnittstelle, Sie können weitere Ausgaben dieses Befehls filtern, z. B.

netstat -e -n -i | grep wlan0  -A 5 | grep 'RX packets' |  tail -1 | awk '{print $6$7}'

verwandte Informationen