Linuxマシンで現在の合計帯域幅使用量を取得する良い方法を探しています。私はiftop
、nethogs
を試しましたが、システムモニターと比較して実際の帯域幅の使用量は表示されません。彼らは私のプロジェクトのニーズに合いません。実行するコマンドが必要です。アップロードとダウンロードの現在の使用状況のみが返されます。
ネイティブLinuxツールでも何もインストールせずにそれを実行したいと思います。実際、私は監視アプリケーションを作成しています。ユーザーが監視したい各コンピューターに何かをインストールする必要なく、コンピューターを監視できるようにしたいのですが、それはすばらしいことです。
iptraf
を使用します- http://www.linuxcommand.org/man_pages/iptraf8.html
これはncursesベースのコマンドラインユーティリティで、帯域幅の使用状況など、マシン上のすべてのインターフェースに関する統計を提供できます。
使用できるツールはたくさんあります:nload
、bmon
、iftop
、vnstat
、ifstat
...そして必要に応じて出力の特定の部分(アップロードやダウンロードなど)を取得するために、出力をgrep
/cut
/awk
作成できると確信していますそれはあなたのために働く。
sysstatはネットワークスタストも収集します。 「man sar」を実行すると、履歴データを保持できるすべてのリソースが表示されます。
Cronにコマンド「/ usr/lib/sa/sa1」(または/ usr/lib64/sa/sa1)を入力して設定し、データポイントが必要になるたびに(たとえば5分ごとに)実行します。
次に、「sar」を使用してデータを表示できます。デフォルトは今日です。最大30日間の履歴データも表示できます。データをアーカイブして永久に保存することもできます(毎日のデータは約8MBです)。
ネットワーキングには、「sar -n」を使用します
素晴らしいツール:)
例:
testlinux:~ # sar -n DEV | head -10
Linux 2.6.16.60-0.21-default (pCITFileSvr01) 11/07/10
00:00:01 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
00:05:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:05:01 eth0 9.95 0.12 1.42 0.02 0.00 0.00 0.00
00:10:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:10:01 eth0 10.20 0.04 1.44 0.00 0.00 0.00 0.00
00:15:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00:15:01 eth0 10.32 0.12 1.50 0.02 0.00 0.00 0.00
00:20:01 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
testlinux:~ #