我正在制作一个过程监控应用程序。现在我的需要是
获取所有正在运行的进程的进程相关数据(pid、进程名称、cpu 使用情况、内存使用情况和虚拟内存使用情况)。
完成第一步后,我想将检索到的数据存储为csv格式。
我的代码部分是:
ps -e -o pid,lstart,%cpu,%mem,cmd >> output.csv
但它仅将所有值存储在一个单元格中。这意味着它没有被逗号分隔。
output.csv示例:
PID STARTED %CPU %MEM CMD
1 Mon Feb 25 00:00:01 2019 0.0 0.1 examplecommand1
2 Mon Feb 25 00:00:01 2019 0.0 0.0 examplecommand2
(...)
任何帮助,将不胜感激。
您可以尝试类似我编写的以下代码:
ps -e -o %p, -o lstart -o ,%C, -o %mem -o ,%c > output.csv
简要说明:
该-o
选项可以在ps
命令中多次使用以指定格式。为了控制使用哪个分隔符,我们可以使用AIX 格式描述符。我们可以指定我们需要的分隔符,例如%p,
。由于AIX 格式描述符并非适用于每条数据,而仅适用于某些数据(例如,在我们的例子中,没有AIX 格式描述符for%mem
和 for lstart
),我们在可用的AIX 格式描述符周围植入%mem
和lstart
包围以实现逗号分离。例如,该站点提供有关该命令的信息以供进一步阅读。ps
output.csv示例:
PID, STARTED,%CPU,%MEM,COMMAND
1,Mon Feb 25 00:00:01 2019, 0.0, 0.1,examplecommand1
2,Mon Feb 25 00:00:01 2019, 0.0, 0.0,examplecommand2
(...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句