一尘不染

如何在Linux的文件中捕获top命令的输出?

linux

我想将特定“ top”命令的输出写入文件。我做了一些谷歌搜索,发现可以通过使用以下命令来完成。

top -n 10 -b > top-output.txt

其中-n用于指定迭代次数,-b用于批处理模式。如果让top进行10次迭代,则效果很好。但是,如果我用Ctrl-C中断了命令的运行,则输出文件似乎为空。

我不会事先知道迭代次数,因此我需要手动中断它。如何在不指定迭代的情况下捕获文件top的输出?

我想精确使用的命令是

top -b | grep init > top-output.txt

并在需要时将其断开。但这是行不通的。

编辑:为了给这个问题更多的上下文,我有一个Java代码,该代码调用带有输入文件的工具。如在工具中一样,将文件作为输入并运行一段时间,然后再获取下一个文件,依此类推。我有一组100,000个文件,需要将其送入该工具。因此,现在我尝试监视该特定工具(它在Linux中作为一个进程运行)。我无法捕获整个“顶部”数据作为文件,因为不需要的数据可能太大了。如何捕获该进程的系统统计信息并使用top将其写入文件?


阅读 436

收藏
2020-06-07

共1个答案

一尘不染

对我来说top -b > test.txttop即使我用破坏了,也会存储ok的所有输出ctrl-c。我建议您先转储,然后再转储grep生成的文件。

2020-06-07