Чи є команда зверху, яка показує пропускну здатність мережі та доступ до файлів запущених процесів


31

Наприклад, ми хотіли б побачити:

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

Чи можливо це? nethogs показує лише TX / RX, тоді як lsof показує лише доступ до файлу.

Зараз я роблю двоетапний процес так:

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

Чи є кращий спосіб?

Відповіді:


5

Наскільки я знаю, ні. Те, що ви намагаєтеся зробити, можливо, комбінуючи кілька команд, як ви зараз робите, хоча я не знаю інших програм, які б надали вам простіші дані для розбору даних (ред.: Інша відповідь запропонувала iftop, який я не знав, додав однорядковий режим виводу тексту). Завдяки розумному сценарію оболонок, передачі даних і трохи ручного форматування, ви можете наблизитись до результату, який ви шукаєте.

Ваш пошук чогось, що відображає статистику мережі та файлів - яку б забезпечували дві різні частини операційної системи - здається, суперечить деяким орендарям «Філософії UNIX:

  • Змусьте кожну програму робити одну справу добре. Щоб зробити нову роботу, будуйте заново, а не ускладнюйте старі програми, додаючи нові функції.
  • Очікуйте, що вихід кожної програми стане входом до іншої, поки невідомої програми. Не захаращуйте вихід із сторонніми відомостями.

Це особливо очевидно в програмах, які виводять текст, наприклад lsof. Зазвичай ви не бачите * консольних програм NIX, що надають користувальницький інтерфейс стільки, скільки даних для передачі в іншу програму, або, можливо, сценарій, використовуючи команди оболонки, як вирізати, щоб створити свої власні спеціально виведені виходи.

Дуг Макілрой підсумував свої попередні заяви через роки:

Пишіть програми, які роблять одне і роблять це добре. Напишіть програми для спільної роботи. Напишіть програми для обробки текстових потоків, оскільки це універсальний інтерфейс.

Хоча це може не допомогти вам отримати відформатований вихід, який ви шукаєте, мистецтво програмування UNIX добре прочитане, і де я знайшов джерела для цих цитат.


7
Це не дає відповіді на запитання.
кіт

Чи можливо це? - Я вважаю, що те, що ви намагаєтеся зробити, - це, мабуть, найкраще (і наскільки я лише знаю) можливе поєднання декількох команд, як це ви робите в даний час. - чи є кращий спосіб? Я вважаю, що те, що ти намагаєшся, мабуть, найкраще і єдино можливе переконання декількох команд ... із деяким розумним сценарієм оболонки та трубопровідними даними, ти можеш отримати вихід [відформатований так], як ти шукаєш. - яке питання я пропустив? може бути краще відповісти із згадкою про сценарії з конфігурацією оболонки, але ваш корисний відгук не згадав про те: p - це правильна відповідь робочим сценарієм?
переписано

Я вважаю, що те, що ви намагаєтеся зробити, можливо, найкраще описано як "відповідь на запитання"; не читати когось з філософії.
Гарднер Бікфорд

Відповідь я викладу більш чітко вгорі. Хоча без уроку філософії ніхто не дізнається, чому відповідь "ні", і може блукати назад в Інтернет, ніколи не розуміючи мудрих слів Linux Torvalds; "Філософія Linux -" Смійтеся перед небезпекою! " На жаль, неправильно. "Зроби сам". Це воно."
надписано

17

Спробуйте iftop для мережі та pidstat від sysstat .

Обидва, ймовірно, прості встановлення (apt-get тощо) для розповсюдження на ваш вибір.


6

atopякимось чином дає вам те, що ви хочете, хоча це не буде настільки специфічно, як руйнування вводу / виводу файловими руками. Щоб отримати повну статистику мережі, потрібно застосувати виправлення ядра.


2

iptraf може бути дуже корисним і знаходячи ширину пропускної здатності.


5
Додавання додаткової інформації / пояснення зробить вашу відповідь кращою.
mtk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.