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

新手上路,请多包涵

我想将特定“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 将其写入文件?

原文由 Pradep 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 393
2 个回答

对我来说 top -b > test.txt 将存储来自 top 的所有输出--- 好的,即使我用 ctrl-c 打破它。我建议你先转储,然后 grep 结果文件。

原文由 Markus Mikkolainen 发布,翻译遵循 CC BY-SA 3.0 许可协议

如何使用 while 循环和 -n 1

 while sleep 3; do
  top -b -n1 | grep init > top-output.txt
done

原文由 Thor 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题