长时间监视linux进程并将其保存到文本文件或csv文件中
我正在运行一个稳定性测试,该测试涉及几个重要的进程,我希望能够单独监控这些进程(CPU、内存、IO等),我知道我可以使用TOP命令,但使用此命令将只看到实时指标,现在我可以将其导出到一个图表中,并查看其随时间的变化情况。我该怎么做 您仍然可以使用长时间监视linux进程并将其保存到文本文件或csv文件中,linux,performance,io,cpu,monitor,Linux,Performance,Io,Cpu,Monitor,我正在运行一个稳定性测试,该测试涉及几个重要的进程,我希望能够单独监控这些进程(CPU、内存、IO等),我知道我可以使用TOP命令,但使用此命令将只看到实时指标,现在我可以将其导出到一个图表中,并查看其随时间的变化情况。我该怎么做 您仍然可以使用top,将单个实例的输出打印到文件中,然后使用grep隔离您想要查看的进程,然后使用awk选择您想要的字段 差不多 top -n 1 -b > /tmp/log_top_running ; grep <process_name> /tm
top
,将单个实例的输出打印到文件中,然后使用grep
隔离您想要查看的进程,然后使用awk
选择您想要的字段
差不多
top -n 1 -b > /tmp/log_top_running ; grep <process_name> /tmp/log_top_running | awk '{print $10}' >> <report_file>
top-n1-b>/tmp/log\u top\u正在运行;grep/tmp/log|u top|u running | awk'{print$10}'>>
将提取进程运行时间并将其附加到报告文件中-b
是为了避免文件中的转义字符,-n1
在第一次刷新后终止top
这是你能做的最基本的事情——你可以通过传递到top
标记来只打印你想看的东西,从而做一些更聪明的事情
要使其定期执行,您可以在脚本中编写此命令,并使用watch
命令,使用-n
选项设置以秒为单位的间隔。在你有了你的文件后,你可以打印它
希望有帮助。它可以工作,但我看不到列的名称(例如%CPU,%MEM等),我如何维护它?在开始数据采集之前,使用字符串
MEM
执行grep
,报告文件应该有正确的标题。编辑后保存到临时文件,以避免清理。只需检查没有具有该名称的文件,或者相应地更改它。如果我想获取进程的多个度量,我可以使用与上面相同的命令来完成,还是应该使用不同的进程名称来生成每一行?是的,您可以使用类似于awk'{print$1,$2,$3}'
的内容一次打印多个列。