Si vous voulez juste obtenir la valeur, vous pouvez utiliser un simple shell oneliner comme ceci:
S=10; F=/sys/class/net/eth0/statistics/rx_bytes; X=`cat $F`; sleep $S; Y=`cat $F`; BPS="$(((Y-X)/S))"; echo $BPS
Il vous montrera la moyenne "octets reçus par seconde" pour une période de 10 secondes (vous pouvez changer la période en changeant le S=10
paramètre, et vous pouvez mesurer le BPS transmis au lieu du BPS reçu en utilisant tx_bytes
au lieu de rx_bytes
). N'oubliez pas de passer eth0
au périphérique réseau que vous souhaitez surveiller.
Bien sûr, vous n'êtes pas limité à l'affichage du taux moyen (comme mentionné dans d'autres réponses, il existe d'autres outils qui vous montreront une sortie beaucoup plus agréable), mais cette solution est facilement scriptable pour faire d'autres choses.
Par exemple, le script shell suivant (divisé en plusieurs lignes pour plus de lisibilité) exécutera le processus offlineimap uniquement lorsque la vitesse de transmission moyenne sur 5 minutes descend en dessous de 10 kBPS (vraisemblablement, à la fin d'un autre processus consommateur de bande passante):
#!/bin/sh
S=300; F=/sys/class/net/eth0/statistics/tx_bytes
BPS=999999
while [ $BPS -gt 10000 ]
do
X=`cat $F`; sleep $S; Y=`cat $F`; BPS="$(((Y-X)/S))";
echo BPS is currently $BPS
done
offlineimap
Notez que /sys/class/...
c'est spécifique à Linux (ce qui est correct car l'expéditeur a choisi la linux
balise), et nécessite un noyau non archaïque. Le code shell lui-même est compatible avec / bin / sh (donc non seulement bash, mais dash et autres implémentations / bin / sh fonctionneront) et / bin / sh est quelque chose qui est vraiment toujours installé.