如何以csv格式存储ps命令输出?

用户10055243

我正在制作一个过程监控应用程序。现在我的需要是

  1. 获取所有正在运行的进程的进程相关数据(pid、进程名称、cpu 使用情况、内存使用情况和虚拟内存使用情况)。

  2. 完成第一步后,我想将检索到的数据存储为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
                          (...)

任何帮助,将不胜感激。

用户11087555

您可以尝试类似我编写的以下代码:

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 格式描述符周围植入%memlstart包围以实现逗号分离。例如,该站点提供有关该命令的信息以供进一步阅读。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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章