W jaki sposób użytkownik inny niż root może monitorować ruch sieciowy w wierszu poleceń?

0

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.

nullUser
źródło
Użytkownik inny niż root nie może monitorować ruchu sieciowego. Widzą jednak sumy generowane przez system
qasdfdsaq,

Odpowiedzi:

4

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).

Daniel B.
źródło
1

Dir /sys/class/net/${interface}/statistics/ma wszystko, czego potrzebujesz.

Skrypt BASH oparty na tym: check_bandwidth.sh

7171u
źródło
0

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ć.

dualscyther
źródło