
プロセスのネットワーク アクティビティと接続の帯域幅を監視する必要があります。そこで、 と を と組み合わせて使用しnethog
、netperf
値grep
をawk
ファイルに書き込むことにしました。
nethog
コマンド: nethogs -t eth0 | grep firefox | awk '{ print $3 }'
(アップロード/ダウンロード速度を計測します)。1つ目の問題そのコマンドは何も印刷しません。
詳細: コマンド:nethogs -t eth0 | grep firefox
出力:
usr/lib/firefox/firefox-bi�)/4956/1000 0.338867 0.239063
/usr/lib/firefox/firefox-bi�)/4956/1000 0.543555 0.274219
/usr/lib/firefox/firefox-bi�)/4956/1000 0.794531 0.489844
/usr/lib/firefox/firefox-bi�)/4956/1000 0.794531 0.489844
/usr/lib/firefox/firefox-bi�)/4956/1000 0.749023 0.589844
/usr/lib/firefox/firefox-bi�)/4956/1000 1.30098 3.47617
/usr/lib/firefox/firefox-bi�)/4956/1000 1.90449 8.0127
/usr/lib/firefox/firefox-bi�)/4956/1000 5.31641 25.0033
/usr/lib/firefox/firefox-bi�)/4956/1000 8.60762 42.0176
右下の 2 つの値が必要です。しかし、ご覧のとおり、出力は一貫していません (スペース)。 を追加します| awk '{print $3}' most of the time return nothing
。そして、これを修正することはできません。
netperf
コマンド:netperf -H 192.168.1.10
出力は次のようになります:
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
524288 524288 262144 10.00 **718.62**
右下に値を印刷したいのですが、方法がわかりません。2番目の問題=> fedorqui によって解決されました!
皆さん、助けてくれませんか?どんなアイデアでも大歓迎です!
答え1
のために2番目の問題、 できるよ:
your_command | tail -1 | awk '{print $NF}'
これにより、指定された入力の最後の行の最後のフィールドが出力されます。
答え2
まずはこれから始めましょう:
nethogs -t eth0 | awk '/firefox/{ print $3 }'
netperf -H 192.168.1.10 | awk 'END{ print $NF }'
これらが機能しない場合は、awk スクリプトへのサンプル入力、予想される出力、および説明を提供してください。
必要なもの:
netperf -H 192.168.1.10 | awk '{v=$NF} END{ print v }'
一部の awk では、POSIX によって END セクションのフィールドを保持する必要がないため、この処理は実行されません。