我正在制作一个流程监控应用程序。现在我的需要是
获取所有正在运行的进程的进程相关数据(pid、进程名称、cpu 使用情况、内存使用情况和虚拟内存使用情况)。
完成第一步后,我想将检索到的数据存储为csv格式。
我的代码部分是:
ps -e -o pid,lstart,%cpu,%mem,cmd >> output.csv
Run Code Online (Sandbox Code Playgroud)
但它仅将所有值存储在一个单元格中。意思是它不是用逗号分隔的。
输出.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
(...)
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。
小智 8
您可以尝试类似我编写的以下代码:
ps -e -o %p, -o lstart -o ,%C, -o %mem -o ,%c > output.csv
简要说明:
该-o选项可以在命令中多次使用ps以指定格式。为了控制使用哪个分隔符,我们可以使用AIX 格式描述符。我们可以指定所需的分隔符,例如%p,。由于AIX 格式描述符并不适用于每条数据,而仅适用于某些数据(例如,在我们的例子中,没有for和 for 的AIX 格式描述符),因此我们在可用的AIX 格式描述符周围种植和来实现逗号分离。例如,该站点提供有关该命令的信息以供进一步阅读。 %memlstart%memlstartps
输出.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
(...)
Run Code Online (Sandbox Code Playgroud)