我想检查我的进程使用的网络带宽。 为此,我发现nethogs工具很有用。使用此工具,我可以看到哪个进程占用了网络带宽和进程行为。 但是,如何从我的进程的nethogs中捕获数据并将其存储到日志文件中?
答案 0 :(得分:2)
我不知道这些选项何时实现但您可以使用nethogs -t
或nethogs -b
,pid和用户奇怪地放在pid命令字符串的末尾,但很容易解析。 / p>
我认为你需要使用最新的cvs版本0.8.1-SNAPSHOT
答案 1 :(得分:2)
您可以在跟踪模式下在后台运行nethogs
并将输出写到这样的文件中:
sudo nethogs -t eth1 &> /var/tmp/nethogs.log &
按照here的说明下载并构建nethogs-parser
。
然后,在您积累了足够的数据之后,您可以运行解析器以查看结果:
./hogs -type=pretty /var/tmp/nethogs.log
在收集完数据后,请确保终止正在运行的nethogs
进程。
有关自动执行任务的更多信息here。
答案 2 :(得分:1)
您可以使用此命令捕获输出:
nethogs -d 5 | sed 's/[^[:print:][:cntrl:]]//g' > output.txt
答案 3 :(得分:1)
nethogs的正确命令是
nethogs -d 1 eth0 > output.txt
您需要指定网络接口,否则将使用默认接口eth0。有时,由于网络接口,nethogs可能无法显示正确的输出。在实验过程中提供网络接口并生成一些流量总是更好。您可以通过添加> output.txt
将输出打印到文件
-d参数指定输出的显示频率。在这里,我给了1,这表明输出将每秒显示。
希望这可能有用。