如何每15秒记录一次PID及其命令?

如何每15秒记录一次PID及其命令?

为了排除故障,我想每 15 秒记录一次 PID 及其命令并将它们写入文本文件。

所需的输出:时间戳、PID、命令

答案1

这将为您提供所需的三列:

$ ps -hopid,comm | perl -anle'print time, ", $F[0], $F[1]"'
1541626566, 6496, gedit
1541626566, 7513, bash

您可以限制或扩展 的范围ps,即。它列出了哪些进程。然后将其放入带有重定向的循环中。

while true; do echo x; sleep 15; done > out

替换echo x为正确的命令和out您选择的文件名。

至于生成信息的命令,这里有一个概要。

  • ps -hopid,comm-ps很明显,-h关闭标题行并-o代表输出(PID 和命令)。
  • 这将转到 Perl 命令,即perl -anle'print time, ", $F[0], $F[1]"'.这perl是珀尔。这些-anle标志相应地表示:a- 将输入加载到数组中,n- 处理新行,l- 处理每一行,最后e- 执行后面的代码。
  • 现在代码如下'print time, ", $F[0], $F[1]"':首先打印时间戳,然后打印保存输入材料的数组的第一列,然后是第二列。

相关内容