我正在制作一个过程监控应用程序。现在我需要的是
获取所有正在运行的进程的与进程相关的数据(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
(...)
任何帮助将不胜感激。
答案 0 :(得分:2)
您可以尝试以下类似我编写的代码:
ps -e -o %p, -o lstart -o ,%C, -o %mem -o ,%c > output.csv
简要说明:
-o
命令可以在ps
命令中多次使用以指定格式。
为了控制使用哪个分隔符,我们可以使用 AIX格式描述符。我们可以指定所需的分隔符,例如%p,
。由于 AIX格式描述符并非适用于每条数据,而是仅适用于某些数据(例如,在我们的案例中,{{1没有针对 AIX格式的描述符 }},对于%mem
),我们在可用的 AIX格式描述符周围植入lstart
和%mem
,以实现逗号分隔。例如,this site提供有关lstart
命令的信息以供进一步阅读。
output.csv 示例:
ps
答案 1 :(得分:0)
csv-ps -c pid,cmd,%cpu,vm_rss_KiB,vm_size_KiB