Comment obtenir des octets TX / RX sans ifconfig?

62

Comme il ifconfigest apparemment obsolète dans les principales distributions Linux, je pensais que je devrais apprendre quelque chose sur l’ ipoutil qui est censé être utilisé à la place de ifconfig.

Et là, j’ai rencontré un problème: quand il est exécuté seul, il ifconfigindique le nombre d’octets reçus / transmis sur chaque interface, en plus d’autres informations. Je ne pouvais pas trouver un moyen d'obtenir cela ip. N'y a-t-il pas une telle fonction dans cet outil? Quels autres outils intégrés puis-je utiliser pour obtenir ces statistiques?

Justinas
la source
Vous pouvez également vérifier netstat. linux.die.net/man/8/netstat
SunSparc

Réponses:

53

Une autre option consiste à utiliser le système de fichiers / proc. Le fichier / proc / net / dev contient des statistiques sur les interfaces réseau configurées. Chaque ligne est dédiée à une interface réseau et contient des statistiques pour la réception et la transmission. Les statistiques comprennent des mesures telles que le nombre total d'octets reçus / transmis, de paquets, de pertes, d'erreurs, etc.

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

Vous pouvez également essayer la commande netstat, qui permet d’afficher toutes les interfaces réseau et les statistiques associées:

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
dsmsk80
la source
/proc/net/deva le format le plus propre de toutes les solutions IMO, en acceptant.
Justinas
Les statistiques montrées par cat /proc/net/devsont pour combien de temps?
lalebarde
Comment obtenez-vous tx / rx /proc/net/dev?
Piotr Kula
1
Essayez d’analyser les champs 3. et 11. de la sortie, quelque chose comme awk '/: / {print ($ 1, $ 3, $ 11)}' </ proc / net / dev
dsmsk80 le
55

La ipcommande qui fait partie du package iproute2 est le nouvel outil. La linksous-commande sert à gérer les périphériques / interfaces.

Si vous pouvez obtenir les statistiques d’une interface en utilisant 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
Zoredache
la source
6
Bien que la procréponse soit propre et légère, cette réponse est probablement la plus proche d'un "remplacement" de l' ifconfigoutil car il a été explicitement conçu pour être remplacé ifconfig.
Moshe Katz
2
ip -s link show dev eth0pour ne montrer que le trafic sur eth0
pim
4
Pour obtenir cela sous une forme lisible par l'homme (rapports en Mo / Go / TB plutôt qu'en octets), utilisez l' -hindicateur. Par exemple, ip -h -s link.
Joseph Redfern
46

Vous pouvez obtenir toutes les informations nécessaires via proc

# 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

Aussi, vous pouvez utiliser iptables et analyser la sortie.

Pour les paquets reçus

# iptables -L INPUT -n -v

pour les paquets transmis

# iptables -L OUTPUT -n -v 

Si le serveur est une passerelle, vous devez également analyser la chaîne FORWARD

ALex_hha
la source
2

Vous pouvez lire le fichier /sys/class/net/wlp3s0/statistics/rx_byteset obtenir le rx_byes directement sans appeler une autre commande, vnstatest également bon. Comme je le sais, Linux stocke toutes les informations dans des fichiers. Il est donc préférable de rechercher ces fichiers et d’obtenir des informations. Trouver le fichier pertinent est le défi.

Dinuka Salwathura
la source
2
Bienvenue dans la communauté! Bien fait, c'est exact, mais notez que certains anciens noyaux ne fournissent pas ces fichiers. Je vous souhaite bonne chance et succès! ;)
FarazX