実行中のプロセスのネットワーク帯域幅とファイルアクセスを表示するトップのようなコマンドはありますか


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はファイルアクセスのみを表示します。

私は現在、次のような2段階のプロセスを行っています。

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

もっと良い方法はありますか?

回答:


5

私の知る限り、いいえ。あなたが達成しようとしているのは、あなたが現在やっているように複数のコマンドを組み合わせることです。パイプ可能な単一行テキスト出力モード)。巧妙なシェルスクリプティング、パイプ処理されたデータ、および少しの手動フォーマットにより、少なくとも探している出力に近づけることができます。

オペレーティングシステムの2つの異なる部分によって提供されるネットワークとファイルの両方の統計情報を表示するものを検索すると、「The UNIX Philosophy:」の一部のテナントに反するようです。

  • 各プログラムが1つのことをうまく行えるようにします。新しい仕事をするためには、新しい機能を追加して古いプログラムを複雑にするのではなく、新たにビルドしてください。
  • すべてのプログラムの出力が、まだ未知の別のプログラムへの入力になることを期待してください。無関係な情報で出力を乱雑にしないでください。

これは、lsofのようなテキストを出力するプログラムで特に顕著です。あなたは通常、NIXコンソールプログラムは他のプログラムにパイプするデータ、または可能性のようなシェルコマンドを利用するスクリプト限り、ユーザー・インターフェースを提供する*表示されていないカットを、独自の特別仕立ての出力を作成します。

Doug McIlroyは、数年後の以前の声明を要約しました。

1つのことを行うプログラムを作成し、それをうまく実行します。連携して動作するプログラムを作成します。テキストストリームを処理するプログラムを作成します。これはユニバーサルインターフェースであるためです。

探しているフォーマットされた出力を得るのに役立たないかもしれませんが、UNIXプログラミングの芸術は良い読み物であり、それらの引用のソースを見つけました。


7
これは質問に対する答えを提供しません。

これは可能ですか?-あなたが達成しようとしていることは、おそらくあなたが現在しているように複数のコマンドを組み合わせて可能な限り最高の(そして私が知る限り)可能性が高いと思います。-より良い方法はありますか?あなたがしようとしていることはおそらく最良であり、複数のコマンドを説得する可能性があると信じています...巧妙なシェルスクリプトとパイプされたデータを使用すると、探している[方法でフォーマットされた]出力を得ることができます。-私はどんな質問を見逃しましたか?パイプシェルスクリプトについて言及することでより適切に答えられるかもしれませんが、有用なフィードバックでは:pが作業スクリプトの適切な答えであると言及していませんか?
過剰処方

あなたが達成しようとしていることは、おそらく「質問に答える」と最もよく説明されていると思います。誰かに哲学を教えてはいけません。
ガードナービックフォード

哲学のレッスンがなければ、答えがノーである理由を学ぶ人は誰もいませんし、Linux Torvaldsの賢明な言葉を決して理解しないで、インターネットに迷い込むかもしれません。「Linuxの哲学は「危険に直面して笑う!」おっと、間違っている、「自分でやる」。それでおしまい。"
過剰

17

sysstatからネットワークおよびpidstatのiftopを試してください。

どちらもおそらくあなたが選んだディストリビューションのための簡単なインストール(apt-getなど)です。


6

atopファイルハンドルでI / Oを分解するほど具体的ではありませんが、必要なものを提供するために何らかの方法を使用します。完全なネットワーク統計を取得するには、カーネルパッチを適用する必要があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.