it-swarm.com.de

Wie bekomme ich TX / RX-Bytes ohne ifconfig?

Da ifconfig in großen Linux-Distributionen anscheinend veraltet ist, dachte ich, ich würde etwas über das Tool ip lernen, das anstelle von ifconfig verwendet werden soll.

Und hier bin ich auf ein Problem gestoßen: Wenn es alleine ausgeführt wird, zeigt ifconfig neben anderen Informationen die Anzahl der auf jeder Schnittstelle empfangenen/gesendeten Bytes an. Ich konnte keinen Weg finden, dies von ip zu bekommen. Gibt es in diesem Tool keine solche Funktion? Welche anderen integrierten Tools könnte ich verwenden, um diese Statistiken abzurufen?

66
justinas

Eine andere Möglichkeit ist die Verwendung des Dateisystems/proc. Die Datei / proc/net/dev enthält Statistiken zu den konfigurierten Netzwerkschnittstellen. Jede Leitung ist einer Netzwerkschnittstelle zugeordnet und enthält Statistiken zum Empfangen und Senden. Die Statistiken enthalten Metriken wie die Gesamtzahl der empfangenen/gesendeten Bytes, Pakete, Löschvorgänge, Fehler usw.

cat /proc/net/dev

    Inter-|   Receive                                                |  Transmit
     face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed

    lo:    29846937   129576     0    0    0     0          0       0 29846937   129576     0    0    0     0       0          0
 wlan0:    9467393340 8027251    0    0    0     0          0       0 2559312961 5896509    0    0    0     0       0          0

Oder Sie können den Befehl netstat ausprobieren, mit dem alle Netzwerkschnittstellen und zugehörigen Statistiken angezeigt werden können:

netstat -i

Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
lo         65536   0   130435      0      0      0   130435      0      0      0 LRU
wlan0       1492   0  8028018      0      0      0  5897361      0      0      0 BMRU
56
dsmsk80

Der Befehl ip, der Teil des iproute2-Pakets ist, ist das neue Tool. Der Unterbefehl link dient zum Verwalten der Geräte/Schnittstellen.

Wenn Sie die Statistiken einer Schnittstelle mit ip -s link

root:~# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast
    50679705   529967   0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    50679705   529967   0       0       0       0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:1d:7d:aa:e3:4e brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    187663757  308710386 0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    4051284587 532435117 0       0       0       0
57
Zoredache

Sie können alle notwendigen Informationen über proc erhalten

# cat /sys/class/net/eth0/statistics/rx_bytes
# cat /sys/class/net/eth0/statistics/rx_packets

# cat /sys/class/net/eth0/statistics/tx_packets
# cat /sys/class/net/eth0/statistics/tx_bytes

Sie können auch iptables verwenden und die Ausgabe analysieren.

Für empfangene Pakete

# iptables -L INPUT -n -v

für übertragene Pakete

# iptables -L OUTPUT -n -v 

Wenn der Server ein Gateway ist, sollten Sie auch FORWARD chain analysieren

48
ALex_hha

Sie können die Datei /sys/class/net/wlp3s0/statistics/rx_bytes Lesen und die rx_byes direkt abrufen, ohne einen anderen Befehl aufzurufen. vnstat ist ebenfalls gut. Wie ich weiß, speichert Linux alle Informationen in Dateien. Es ist daher besser, diese Dateien zu finden und Informationen abzurufen. Das Finden der relevanten Datei ist die Herausforderung.

2