Comment obtenir les vitesses de téléchargement et de téléchargement actuelles dans le terminal?


10

Je souhaite que le terminal affiche les vitesses de téléchargement et de téléchargement actuelles de ma connexion réseau. Je ne veux pas surveiller les vitesses en temps réel. Je veux juste une valeur "statique" pour pouvoir l'écrire dans un fichier.

Comment y parvenir?

Réponses:


14

Curieusement, la façon la plus simple semble être de regarder /proc/net/dev. J'ai écrit ce qui suit pour comparer ce fichier deux fois (avec un deuxième délai), puis pour soustraire le nombre total d'octets. Dans ce cas, em1l'adaptateur réseau est donc modifiez-le en ce que vous devez regarder.

awk '/em1/ {i++; rx[i]=$2; tx[i]=$10}; END{print rx[2]-rx[1] " " tx[2]-tx[1]}' \
 <(cat /proc/net/dev; sleep 1; cat /proc/net/dev)

La sortie est composée de deux nombres. Octets reçus par seconde suivis par octets envoyés par seconde.


3
Et voilà. Le résume en une seule déclaration awk. Bootiful.
Oli

11

Voici une variante de l'excellente solution d'Oli:

awk '{if(l1){print $2-l1,$10-l2} else{l1=$2; l2=$10;}}' \
  <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)

Il affichera le même résultat que l'approche d'Oli:

$ awk '{if(l1){print $2-l1,$10-l2} else{l1=$2; l2=$10;}}' \
>   <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)
401500 30286

La première valeur est le taux de téléchargement en octets par seconde et la seconde est le taux de téléchargement. Vous pourriez obtenir un format plus convivial avec:

$ awk '{if(l1){print ($2-l1)/1024"kB/s",($10-l2)/1024"kB/s"} else{l1=$2; l2=$10;}}' \
    <(grep wlan0 /proc/net/dev) <(sleep 1; grep wlan0 /proc/net/dev)
398.771kB/s 82.8066kB/s

Remarque: sur Ubuntu 18.04, j'ai dû utiliser à la wlp1s0place de wlan0. Je ne modifierai pas la réponse car je sais que cela dépend de la distribution.
Daniel Serodio
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.