2013-12-20 128 views
8

我想檢查我的進程使用的網絡帶寬。 爲此,我發現nethogs工具很有用。使用這個工具,我可以看到哪個進程正在吃掉網絡帶寬和進程行爲。 但是,我如何從nethogs中爲我的進程捕獲數據並將其存儲到日誌文件中?在日誌文件中捕獲nethogs輸出

+0

你可以嘗試:'nethogs>輸出' – anubhava

+0

可能重複[重定向控制檯輸出到一個文件在unix](http://stackoverflow.com/questions/20702652/redirecting-console-output-to-a-file -in-unix) – l0b0

+0

@anubhava:謝謝你的時間,但它不工作。它失敗,錯誤「等待第一個數據包到達(請參閱sourceforge.net錯誤1019381)」 – vab050

回答

0

你可以試試這個命令來捕獲輸出:

nethogs -d 5 | sed 's/[^[:print:][:cntrl:]]//g' > output.txt 
+1

這不起作用。生成的output.txt不顯示任何統計信息。 –

+0

隨時創建一個新的問題,因爲這是舊的答案,並從此實用程序的輸出可能會有所不同,具體取決於您的版本和系統。 – anubhava

+1

@ValerioSchiavoni使用'nethogs -t',輸出非常可重用! –

2

我不都奇怪地放置在PID指令的最後知道什麼時候這些選項得到了實現,但你可以使用nethogs -tnethogs -b,PID和用戶字符串,但很容易解析。

我認爲你需要使用最新的CVS版本0.8.1-SNAPSHOT

+0

例如,收集數據5秒鐘並打印輸出一次:'nethogs -c 1 -d 5 -t' – Richlv

0

nethogs的正確命令是

nethogs -d 1 eth0 > output.txt 

您需要另行指定網絡接口,默認網卡eth0會使用。有時,由於網絡接口,nethogs可能無法顯示正確的輸出。在實驗過程中提供網絡接口並生成一些流量總是更好。您可以通過添加> output.txt 將輸出打印到文件中。-d參數指定輸出顯示的頻率。在這裏,我給出了1,這表明輸出將每秒顯示。

希望這可能會有用。

+0

這也不起作用: '沒有設備要監控。使用'-a'來允許監控環回接口或未啓動/運行的設備 – GlorianChris