Linux マシンの現在の総帯域幅使用量を取得する良い方法を探しています。 、 を試しましたiftop
がnethogs
、システム モニターと比較して実際の帯域幅使用量が表示されず、プロジェクトのニーズに合いません。実行すると、アップロードとダウンロードの現在の使用量のみが返されるコマンドが必要です。
また、何もインストールせずにネイティブ Linux ツールを使用して実行したいと考えています。実際、監視アプリケーションを作成しているのですが、ユーザーが監視したい各コンピューターに何かをインストールしなくてもコンピューターを監視できるようにしたいと考えています。それは素晴らしいことです。
答え1
使用iptraf
-http://www.linuxcommand.org/man_pages/iptraf8.html
これは ncurses ベースのコマンドライン ユーティリティであり、帯域幅の使用状況を含む、マシン上のすべてのインターフェースの統計情報を提供できます。
答え2
使用できるツールは多数あります: 、、、、nload
...出力の特定の部分だけを取得したい場合 (たとえば、アップロードやダウンロード)、出力を // して機能させることができると確信bmon
していiftop
ます。vnstat
ifstat
grep
cut
awk
答え3
sysstat はネットワーク統計も収集します。「man sar」を実行すると、履歴データを保存できるすべてのリソースが表示されます。
cron にコマンド「/usr/lib/sa/sa1」(または /usr/lib64/sa/sa1)を入力して設定し、データ ポイントが必要なたびに(たとえば 5 分ごとに)実行します。
次に、「sar」を使用してデータを表示できます。デフォルトは今日です。最大 30 日間の履歴データを表示することもできます。データをアーカイブして永久に保存することもできます (各日のデータは約 8 MB です)。
ネットワークの場合は「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:~ #
答え4
少し調べてみたらこれ簡単に言えば、ネットワークの使用状況を要約するために使用するソリューションですnetstat
。これが私の変更したコマンドです
netstat -e -n -i | grep wlan0 -A 5 | grep 'RX packets' | tail -1
出力例:-
RX packets 76639 bytes 73706194 (70.2 MiB)
wlan0
カードのインターフェース名を変更すると、そのコマンドの出力をさらにフィルタリングできます。例:
netstat -e -n -i | grep wlan0 -A 5 | grep 'RX packets' | tail -1 | awk '{print $6$7}'