來自 nethog 和 netperf 的 Grep 值

來自 nethog 和 netperf 的 Grep 值

我需要監視進程的網路活動和連線的頻寬。所以我決定使用nethognetperf結合grep並將awk值寫入文件。

nethog命令:(nethogs -t eth0 | grep firefox | awk '{ print $3 }'我想取得上傳/下載速度)。第一個問題該命令不列印任何內容。

更多詳細資訊:命令: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

我想要右下角的兩個值。但正如您所看到的,輸出不一致(空格),請加| 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**

我想列印右下角的值,但不知道該怎麼做。這就是第二個問題=> 由 fedorqui 解法!

你們能幫我一下嗎?任何想法將不勝感激!

答案1

為了第二個問題, 你可以做:

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 }'

與一些 awks 一起使用,因為 POSIX 不要求它們保留 END 部分中的欄位。

相關內容