Je sais que gnome-system-monitor peut afficher la bande passante même s’il est ouvert par un utilisateur non root. Mais des outils comme iftop, nethogs, etc. semblent tous nécessiter le travail de root. Comment permettre à un utilisateur régulier de faire ce que gnome-system-monitor fait? L’application que je vais utiliser est un script qui génère des débits en Mb / s toutes les n secondes, utilisé pour la canalisation vers une ligne d’état.
0
Réponses:
Les données que vous souhaitez sont disponibles pour tout le monde, à l'adresse
/proc/net/dev
. Cependant, vous devrez calculer vous-même la bande passante, en prenant le delta et le temps entre deux valeurs.N'oubliez pas cependant que ces compteurs peuvent déborder, en fonction de l'architecture de votre système et de la version du noyau. Un débordement peut survenir à 2 32 -1 (accessible en quelques secondes sur Gigabit Ethernet) ou à 2 64 -1 (pratiquement inutile).
la source
Dir
/sys/class/net/${interface}/statistics/
a tout ce dont vous avez besoin.Script BASH basé sur ceci: check_bandwidth.sh
la source
Supposons que vous parlez de néthogs. Nous savons que nethogs appartient à root si nous le faisons
ls -l $(which nethogs)
.Tout ce dont nous avons besoin maintenant, c’est de changer le bit SUID afin que, lorsque vous exécutez nethogs, il s’exécute avec les autorisations de son propriétaire (c’est-à-dire root). Courir:
sudo chmod u+s $(which nethogs)
Et ça devrait marcher.
la source