Apakah ada perintah seperti teratas yang menunjukkan bandwidth jaringan dan akses file dari proses yang sedang berjalan


31

Misalnya, kami ingin melihat:

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

Apakah ini mungkin? nethogs hanya menampilkan TX / RX, sementara lsof hanya menunjukkan akses file.

Saat ini saya sedang melakukan proses 2 langkah seperti:

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

Apakah ada cara yang lebih baik?

Jawaban:


5

Sejauh yang saya tahu, tidak. Apa yang Anda coba selesaikan adalah mungkin menggabungkan beberapa perintah seperti yang Anda lakukan saat ini, meskipun saya tidak tahu aplikasi lain yang akan memberikan Anda data lebih mudah diurai (ed: jawaban lain menyarankan iftop yang saya tidak tahu menambahkan sebuah mode output teks baris tunggal yang dapat di-pipe). Dengan beberapa skrip shell yang cerdas, data yang disalurkan, dan sedikit pemformatan manual, Anda bisa mendapatkan setidaknya mendekati hasil yang Anda cari.

Pencarian Anda untuk sesuatu yang menunjukkan statistik jaringan dan file - yang akan disediakan oleh dua bagian berbeda dari sistem operasi - tampaknya bertentangan dengan beberapa penyewa dari 'The UNIX Philosophy:'

  • Buat setiap program melakukan satu hal dengan baik. Untuk melakukan pekerjaan baru, bangun lebih awal daripada mempersulit program lama dengan menambahkan fitur baru.
  • Harapkan output dari setiap program untuk menjadi input ke program lain yang belum dikenal. Jangan mengacaukan hasil dengan informasi asing.

Ini sangat jelas dalam program yang menghasilkan teks, seperti lsof. Anda biasanya tidak melihat * program konsol NIX yang menyediakan antarmuka pengguna sebanyak data yang akan disalurkan ke program lain, atau mungkin skrip yang menggunakan perintah shell seperti cut untuk membuat output sendiri yang dirancang khusus.

Doug McIlroy meringkas pernyataan sebelumnya bertahun-tahun kemudian:

Tulis program yang melakukan satu hal dan lakukan dengan baik. Menulis program untuk bekerja bersama. Menulis program untuk menangani aliran teks, karena itu adalah antarmuka universal.

Meskipun mungkin tidak membantu Anda mendapatkan output yang diformat yang Anda cari, The Art of UNIX Programming adalah bacaan yang baik, dan di mana saya menemukan sumber untuk kutipan tersebut.


7
Ini tidak memberikan jawaban untuk pertanyaan itu.
kucing

Apakah ini mungkin? - Saya percaya apa yang Anda coba capai mungkin yang terbaik (dan sejauh yang saya tahu hanya) mungkin menggabungkan beberapa perintah seperti yang Anda lakukan saat ini. - adakah cara yang lebih baik? Saya percaya apa yang Anda coba mungkin yang terbaik dan hanya mungkin meyakinkan beberapa perintah ... dengan beberapa skrip shell cerdas dan data yang disalurkan, Anda bisa mendapatkan output [diformat dengan cara] yang Anda cari. - pertanyaan apa yang saya lewatkan? mungkin lebih baik dijawab dengan menyebutkan skrip shell piped, tetapi umpan balik bermanfaat Anda tidak menyebutkan bahwa: p apakah jawaban yang tepat skrip yang berfungsi?
Berlebihan

Saya percaya apa yang ingin Anda capai mungkin paling baik digambarkan sebagai "jawab pertanyaan"; tidak memberi kuliah seseorang tentang filsafat.
Gardner Bickford

Aku akan meletakkan jawabannya lebih jelas di atas. Namun, tanpa pelajaran filsafat, tidak ada yang tahu mengapa jawabannya tidak, dan mungkin berjalan kembali ke internet, tidak pernah memahami kata-kata bijak dari Linux Torvalds; "Filosofi Linux adalah 'Tertawa dalam menghadapi bahaya!' Ups, salah. "Lakukan sendiri." Itu dia."
diresepkan

17

Coba buka untuk jaringan dan pidstat dari sysstat .

Keduanya mungkin merupakan instalasi yang mudah (apt-get, dll) untuk distribusi pilihan Anda.


6

atoppergi beberapa cara untuk memberi Anda apa yang Anda inginkan, meskipun itu tidak akan secara spesifik memecah I / O oleh filehandle. Untuk mendapatkan statistik jaringan lengkap Anda harus menerapkan patch kernel.


2

iptraf bisa sangat berguna dan menemukan babi bandwidth.


5
Menambahkan lebih banyak info / penjelasan akan membuat jawaban Anda lebih baik.
mtk
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.