La Fibre
Télécom => Logiciels et systèmes d'exploitation => Linux => Discussion démarrée par: vivien le 08 décembre 2018 à 19:47:18
-
Connaître sa consommation Internet sous Linux
Vous souhaitez savoir combien vous avez consommé d’internet depuis le dernier redémarrage ?
Il suffit d'ouvrir le "Moniteur système" présent dans toutes les distributions Gnome.
(https://lafibre.info/testdebit/ubuntu/201812_ubuntu_moniteur_systeme.png)
L'information est donnée en Gio (pour rappel 1 Gio = 1 073 741 824 octets soit 1024 × 1024 × 1024 octets)
11,5 Gio en descendant et 235 Mio en montant correspond à une journée où Youtube diffuse de la musique en fond (et la résolution est du 1080p)
En ligne de commande, l’information est donnée par la commande ifconfig
L'information est là exprimée en Go (pour rappel 1 Gio = 1 000 000 000 octets soit 10 puissance 9)
(https://lafibre.info/testdebit/ubuntu/201812_ubuntu_ifconfig.png)
A noter que si vous préférez avoir l'information en gigabit (Gb soit 1 000 000 000 bits), c'est possible en sélectionnant la case "Afficher la vitesse du réseau en bits" dans les options du moniteur système.
-
ifconfig est déprécié maintenant, mais pas sur que tu aies une commande ip correspondante.
-
Tout a fait. ifconfig n'est plus installé par défaut sur les dernière version des distribution (mais il reste possible de l'installer).
ip addr show et ip link show remplacent ifconfig.
ip route show remplace la commande route
mais pour avoir les compteurs de trafic ou d’erreurs, je n'ai pas trouvé la correspondance.
ifconfig permet de voir simplement les erreurs, si le câble Ethernet es défectueux :
(https://lafibre.info/images/tuto/201507_ifconfig_erreur_1.png)
-
La commande ip -s link permet de retrouver les stats :
3: enp1s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:1b:21:6c:e2:89 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
259663301173 249596202 0 0 0 43045
TX: bytes packets errors dropped carrier collsns
11368249884 69269832 0 0 0 0
Visiblement ça marche aussi avec ip -s addr pour avoir en plus les adresses IP configurées sur les interfaces
-
Bien vu, je n'avais jamais entendu parler du -s :)
-
Dommage qu'une option -g ne soit pas disponible pour avoir les données en Go, -t pour du To, car sur certains serveurs j'arrive a plusieurs pétaoctet émis... (15 chiffres)
-
Dommage qu'une option -g ne soit pas disponible pour avoir les données en Go, -t pour du To, car sur certains serveurs j'arrive a plusieurs pétaoctet émis... (15 chiffres)
-h
-
C'est top... exemple avec 22,6 To en upload :
ip -h -s link
4: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 3c:fd:fe:1a:1d:e0 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
514G 6.44G 0 0 0 1
TX: bytes packets errors dropped carrier collsns
22.6T 15.3G 0 0 0 0
-
Ce que j'aime pas trop c'est que le -h produit les résultats sous la forme décimal.
#!/usr/bin/python3
import sys
import os
try:
iface = sys.argv[1]
except IndexError:
print("usage: {} <interface>".format(sys.argv[0]))
exit(1)
path = "/sys/class/net/{}/statistics/".format(iface)
if not os.path.exists(path):
print("Interface {} does not exist.".format(iface))
exit(1)
with open(path + "rx_bytes") as rx:
rx_bytes = int(rx.read()[:-1])
with open(path + "tx_bytes") as tx:
tx_bytes = int(tx.read()[:-1])
rx_g = round(rx_bytes/1073741824, 2)
rx_t = round(rx_bytes/1099511627776, 2)
tx_g = round(tx_bytes/1073741824, 2)
tx_t = round(tx_bytes/1099511627776, 2)
print(
"RX: {:.2f} GiB / {:.2f} TiB\n"
"TX: {:.2f} GiB / {:.2f} TiB".format(rx_g, rx_t, tx_g, tx_t)
)
$ ./ifacestats.py eth0
RX: 10106.64 GiB / 9.87 TiB
TX: 148699.09 GiB / 145.21 TiB
-
Je viens de découvrir qu'on peut mettre deux fois l'option -s pour avoir un peu plus de détails sur les erreurs :
alexis@alexis-PC:~$ ip -s -s -h link show enp1s0f0
3: enp1s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:1b:21:6c:e2:89 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
279G 267M 0 0 0 45.0k
RX errors: length crc frame fifo missed
0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
11.7G 72.3M 0 0 0 0
TX errors: aborted fifo window heartbeat transns
0 0 0 0 4
-
il existe vnstat pour la consommation journaliere, hebdo ou mensuel..
je vous file mon script dans la journée...
-
netstat -s
? C'est à mon gout la commande Linux qui donne les stats les plus détaillées d'une pile réseau IP.
-
Ah oui pour être détaillé, c'est détaillé...
Le serveur fr.archive.ubuntu.com après 12h d'uptime (je l'ai redémarré ce matin pour une mise à jour de sécurité) :
$ netstat -s
Ip:
Forwarding: 2
897706030 total packets received
0 forwarded
0 incoming packets discarded
897706018 incoming packets delivered
842507012 requests sent out
24 outgoing packets dropped
14 reassemblies required
7 packets reassembled ok
Icmp:
30842 ICMP messages received
441 input ICMP message failed
InCsumErrors: 10
Histogramme d'entrée ICMP
destination unreachable: 3046
timeout in transit: 75
echo requests: 27711
28430 ICMP messages sent
0 ICMP messages failed
Histogramme de sortie ICMP
destination unreachable: 719
echo replies: 27711
IcmpMsg:
InType3: 3046
InType8: 27711
InType11: 75
OutType0: 27711
OutType3: 719
Tcp:
3869 active connection openings
981838 passive connection openings
137505 failed connection attempts
54034 connection resets received
155 connections established
1168954331 segments received
2772302756 segments sent out
22505289 segments retransmitted
1115 bad segments received
120252 resets sent
InCsumErrors: 1107
Udp:
36 packets received
719 packets to unknown port received
0 packet receive errors
84 packets sent
0 receive buffer errors
0 send buffer errors
UdpLite:
TcpExt:
5024 SYN cookies sent
4809 SYN cookies received
1945 invalid SYN cookies received
137505 resets received for embryonic SYN_RECV sockets
217 ICMP packets dropped because they were out-of-window
381167 TCP sockets finished time wait in fast timer
486520 packetes rejected in established connections because of timestamp
281787 delayed acks sent
3322 delayed acks further delayed because of locked socket
Quick ack mode was activated 48646 times
242 SYNs to LISTEN sockets dropped
3652334 packet headers predicted
284546581 acknowledgments not containing data payload received
868488556 predicted acknowledgments
3859 times recovered from packet loss due to fast retransmit
TCPSackRecovery: 3536773
TCPSACKReneging: 2028
Detected reordering 7747406 times using SACK
Detected reordering 9135 times using reno fast retransmit
Detected reordering 114524 times using time stamp
5262 congestion windows fully recovered without slow start
71175 congestion windows partially recovered using Hoe heuristic
TCPDSACKUndo: 8972
25179 congestion windows recovered without slow start after partial ack
TCPLostRetransmit: 669240
313 timeouts after reno fast retransmit
TCPSackFailures: 2948
35806 timeouts in loss state
20845871 fast retransmits
998422 retransmits in slow start
TCPTimeouts: 187566
TCPLossProbes: 631016
TCPLossProbeRecovery: 12360
TCPRenoRecoveryFail: 515
TCPSackRecoveryFail: 140641
TCPDSACKOldSent: 51156
TCPDSACKOfoSent: 358
TCPDSACKRecv: 810825
TCPDSACKOfoRecv: 170262
18349 connections reset due to unexpected data
2219 connections reset due to early user close
5792 connections aborted due to timeout
TCPSACKDiscard: 76297
TCPDSACKIgnoredOld: 40729
TCPDSACKIgnoredNoUndo: 553182
TCPSpuriousRTOs: 7631
TCPSackShifted: 41756978
TCPSackMerged: 64986968
TCPSackShiftFallback: 22305484
TCPDeferAcceptDrop: 1087676
IPReversePathFilter: 5
TCPReqQFullDoCookies: 5024
TCPRcvCoalesce: 709080
TCPOFOQueue: 16876
TCPOFOMerge: 360
TCPChallengeACK: 8026
TCPSYNChallenge: 10
TCPFastOpenCookieReqd: 27
TCPAutoCorking: 454625
TCPFromZeroWindowAdv: 50
TCPToZeroWindowAdv: 50
TCPWantZeroWindowAdv: 35712
TCPSynRetrans: 103091
TCPOrigDataSent: 2768587626
TCPHystartTrainDetect: 78729
TCPHystartTrainCwnd: 12215952
TCPHystartDelayDetect: 174985
TCPHystartDelayCwnd: 12571510
TCPACKSkippedSynRecv: 191
TCPACKSkippedPAWS: 441135
TCPACKSkippedSeq: 52631
TCPACKSkippedFinWait2: 40
TCPACKSkippedTimeWait: 891
TCPACKSkippedChallenge: 11235
TCPWinProbe: 61978
IpExt:
InOctets: 50818050809
OutOctets: 2938220564214
InNoECTPkts: 897650554
InECT1Pkts: 169
InECT0Pkts: 82434
InCEPkts: 5255
-
vnstat :)
-
vnstat :)
nstat plutot non ? Du paquet iproute2
-
nan
voici mon code bourrin pour l'installer sous ubuntu 18.04 LTS
# Ne sert qu'a faire du daily, monthly BW...
# 1 Gib = 1,024GB... donc c'est affiché en realité 2,4% moins que en GB
sudo apt-get install vnstat
# liste les interfaces disponibles
vnstat --iflist
read $r
sudo chown -R vnstat:vnstat /var/lib/vnstat
# (Je suis en WiFi donc j'utilise la ligne suivante qui n'est pas commentée) sudo vnstat -u -i enp0s7
sudo vnstat -u -i wlx10feed25f5ac
sudo chown -R vnstat:vnstat /var/lib/vnstat
# lance les services en permanence: c l'une ou l'autre commande G mis les 2 ;)
sudo /etc/init.d/vnstat start
sudo systemctl enable vnstat.service
sudo /etc/init.d/vnstat status
sudo systemctl status vnstat
# MAJ auto toutes les 5 minutes sinon on force comme ceci:
# (Je suis en WiFi donc j'utilise la ligne suivante qui n'est pas commentée) sudo vnstat -u -i enp0s7 && vnstat -d
sudo vnstat -u -i wlx10feed25f5ac && vnstat -d -i wlx10feed25f5ac
=>
wlx10feed25f5ac / daily
day rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
09/12/2018 X,66 GiB | X21,54 MiB | X,78 GiB | 176,88 kbit/s
10/12/2018 X,53 GiB | X58,61 MiB | X,78 GiB | 276,67 kbit/s
11/12/2018 X,74 GiB | X71,96 MiB | X,91 GiB | 189,92 kbit/s
12/12/2018 X,06 GiB | X82,33 MiB | X,24 GiB | 251,68 kbit/s
------------------------+-------------+-------------+---------------
estimated XX,33 GiB | XX05 MiB | XX,53 GiB |