Réponses:
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.
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
wlp1s0place de wlan0. Je ne modifierai pas la réponse car je sais que cela dépend de la distribution.