Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
长时间监视linux进程并将其保存到文本文件或csv文件中_Linux_Performance_Io_Cpu_Monitor - Fatal编程技术网

长时间监视linux进程并将其保存到文本文件或csv文件中

长时间监视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

我正在运行一个稳定性测试,该测试涉及几个重要的进程,我希望能够单独监控这些进程(CPU、内存、IO等),我知道我可以使用TOP命令,但使用此命令将只看到实时指标,现在我可以将其导出到一个图表中,并查看其随时间的变化情况。我该怎么做

您仍然可以使用
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}'
的内容一次打印多个列。