Czy istnieje górne polecenie, które pokazuje przepustowość sieci i dostęp do plików uruchomionych procesów?

31

Na przykład chcielibyśmy zobaczyć:

PROCESS       IF       TX       RX       FILE(regular) R/W
prog1         eth0     200kB/s  12kB/s   --            --
              wlan0    12kB/s   100kB/s  --            --
              --       --       --       file1         R
              --       --       --       file2         R
              --       --       --       file3         W
prog2         eth0     0kB/s    200kB/s  --            --
              --       --       --       file4         W
              --       --       --       file5         W

czy to możliwe? nethogs pokazuje tylko TX / RX, podczas gdy lsof pokazuje tylko dostęp do pliku.

Obecnie wykonuję dwuetapowy proces, taki jak:

sudo nethogs
sudo lsof -a -d 1-999 -c hogging_program /

Czy jest lepszy sposób?

silvernightstar
źródło

Odpowiedzi:

5

O ile mi wiadomo, nie. To, co próbujesz osiągnąć, to możliwe łączenie wielu poleceń, tak jak obecnie, ale nie znam innych aplikacji, które zapewniłyby ci dane łatwiejsze do przeanalizowania (ed: inna odpowiedź sugerowała, że ​​iftop, o którym nie wiedziałem, dodał potokowy tryb wyświetlania tekstu w jednym wierszu). Za pomocą sprytnego skryptu powłoki, danych potokowych i odrobiny ręcznego formatowania możesz uzyskać co najmniej wynik, którego szukasz.

Poszukiwanie czegoś, co pokazuje zarówno statystyki sieciowe, jak i plikowe - które byłyby zapewniane przez dwie różne części systemu operacyjnego - wydaje się być sprzeczne z niektórymi najemcami „The UNIX Philosophy”:

  • Spraw, aby każdy program działał dobrze. Aby wykonać nową pracę, buduj od nowa zamiast komplikować stare programy, dodając nowe funkcje.
  • Oczekuj, że dane wyjściowe każdego programu staną się danymi wejściowymi do innego, jeszcze nieznanego programu. Nie zaśmiecaj wydruków obcymi informacjami.

Jest to szczególnie widoczne w programach, które generują tekst, takich jak lsof. Zazwyczaj nie widzisz programów konsolowych * NIX zapewniających interfejs użytkownika w takim samym stopniu, jak dane, które mają być przesyłane do innego programu, lub ewentualnie skrypt wykorzystujący polecenia powłoki, takie jak cut, do tworzenia własnych, specjalnie dostosowanych wyników.

Doug McIlroy podsumował swoje wcześniejsze oświadczenie wiele lat później:

Pisz programy, które robią jedną rzecz i robią to dobrze. Pisz programy do współpracy. Pisz programy do obsługi strumieni tekstowych, ponieważ jest to uniwersalny interfejs.

Chociaż może nie pomóc w uzyskaniu sformatowanego wyjścia, którego szukasz, The Art of UNIX Programming to dobra lektura i tam znalazłem źródła tych cytatów.

przesadnie przepisane
źródło
7
To nie daje odpowiedzi na pytanie.
kot
czy to możliwe? - Uważam, że to, co próbujesz osiągnąć, jest prawdopodobnie najlepsze (i o ile mi wiadomo) łączenie wielu poleceń tak jak obecnie. - czy jest lepszy sposób? Uważam, że to, czego próbujesz, jest prawdopodobnie najlepsze i możliwe tylko przekonujące wiele poleceń ... przy pomocy sprytnego skryptu powłoki i danych potokowych możesz uzyskać wynik [sformatowany w sposób], którego szukasz. - jakie pytanie przegapiłem? można lepiej odpowiedzieć, wspominając o skryptach powłoki potokowej, ale twoja pomocna opinia nie wspomniała, że: p jest poprawną odpowiedzią działającym skryptem?
przepisano
Uważam, że to, co próbujesz osiągnąć, najlepiej opisać jako „odpowiedz na pytanie”; nie wykładać kogoś na temat filozofii.
Gardner Bickford
Nie umieszczę odpowiedzi bardziej jasno na górze. Bez lekcji filozofii nikt nie dowiaduje się, dlaczego odpowiedź brzmi „nie” i może wędrować z powrotem do Internetu, nigdy nie rozumiejąc mądrych słów Linuksa Torvaldsa; „Filozofia Linuksa to„ Śmiech w obliczu niebezpieczeństwa! ” Ups, zły. „Zrób to sam”. To jest to."
zawyżony
17

Wypróbuj iftop dla sieci i pidstat z sysstat .

Oba są prawdopodobnie łatwą instalacją (apt-get itp.) Dla wybranej dystrybucji.

Jelly Foks
źródło
6

atopidzie w jakiś sposób, aby dać ci to, czego chcesz, chociaż nie byłoby to tak szczegółowe, jak rozkładanie We / Wy za pomocą uchwytu pliku. Aby uzyskać pełne statystyki sieciowe, musisz zastosować poprawkę do jądra.

Flup
źródło
2

iptraf może być bardzo przydatny i znajdujący wieprze przepustowości.

NinjaTec
źródło
5
Dodanie dodatkowych informacji / wyjaśnień poprawi odpowiedź.
mtk