在日志文件中捕获nethogs输出

时间:2013-12-20 11:47:30

标签: linux bash

我想检查我的进程使用的网络带宽。 为此,我发现nethogs工具很有用。使用此工具,我可以看到哪个进程占用了网络带宽和进程行为。 但是,如何从我的进程的nethogs中捕获数据并将其存储到日志文件中?

4 个答案:

答案 0 :(得分:2)

我不知道这些选项何时实现但您可以使用nethogs -tnethogs -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,这表明输出将每秒显示。

希望这可能有用。