Wiem, że gnome-system-monitor może pokazać mi przepustowość, nawet gdy jest otwierany przez użytkownika innego niż root. Ale narzędzia takie jak iftop, nethogs itp. Wydają się wymagać rootowania do działania. Jak mogę pozwolić zwykłemu użytkownikowi robić to, co robi monitor systemu gnome? Aplikacja, której szukam, to skrypt, który wysyła Mb / s w górę / w dół co n sekund, używany do przesyłania strumieniowego do linii statusu.
linux
bandwidth
bash-scripting
network-monitoring
nullUser
źródło
źródło
Odpowiedzi:
Dane, które chcesz, są dostępne dla wszystkich, pod adresem
/proc/net/dev
. Będziesz jednak musiał sam obliczyć przepustowość, biorąc deltę i czas między dwiema wartościami.Pamiętaj jednak, że liczniki te mogą się przepełnić, w zależności od architektury systemu i wersji jądra. Przepełnienie może wystąpić przy 2 32 -1 (osiągalne w ciągu kilku sekund na Gigabit Ethernet) lub 2 64 -1 (praktycznie nieistotne).
źródło
Dir
/sys/class/net/${interface}/statistics/
ma wszystko, czego potrzebujesz.Skrypt BASH oparty na tym: check_bandwidth.sh
źródło
Załóżmy, że mówisz o nethogach. Wiemy, że nethogs jest własnością root, jeśli to zrobimy
ls -l $(which nethogs)
.Wszystko, co musimy teraz zrobić, to zmienić bit SUID, aby po uruchomieniu nethogów działał on z uprawnieniami właściciela (tj. Root). Biegać:
sudo chmod u+s $(which nethogs)
I powinno działać.
źródło