如何查看最近10秒执行的进程的命令行

如何查看最近10秒执行的进程的命令行

是否有一个视图可以记录并列出过去 10 秒内执行的进程?

我特别想跟踪命令行。

答案1

如果过程未完成,您可以通过以下方式找到它们:

ps axho etime,cmd| sed ':a;s/^\(0*\) /\10/g;ta' | sort | less

但如果过程已经完成,那就不太确定了:

您必须知道在哪里搜索...

警告!仅当二进制文件不在高速缓存中时,以下工作才会起作用:如果它们有一段时间没有被访问。

也许一个简单的ls -ltru就足够了:

/bin/ls -ltru /etc/init.d | tail

否则,更复杂的命令可能是:

find /usr/bin -type f -amin -1

find ${PATH//:/ } -type f -amin -1

find ${PATH//:/ } /home/*/bin -type f -amin -1

将显示一分钟内访问的所有文件。

10秒,就更困难了:

while read time;do
    read name
    [ $time -lt 10 ] && echo $name
  done < <(find ${PATH//:/ } /home/*/bin -type f -amin -1 -print0 |
    xargs -0 --no-run-if-empty stat -c $(date +%s)$'-%X ;"%n\n"' |
    bc)

答案2

尝试这个:

ps k-etime h -eo etimes,command | while read etime comm; do [ $etime -lt 10 ] && echo -e "$etime\t$comm"; done

这将显示过去 10 秒内启动且仍在运行的所有进程。

相关内容