![识别 Linux 中 7 天前的任务/进程](https://linux22.com/image/32290/%E8%AF%86%E5%88%AB%20Linux%20%E4%B8%AD%207%20%E5%A4%A9%E5%89%8D%E7%9A%84%E4%BB%BB%E5%8A%A1%2F%E8%BF%9B%E7%A8%8B.png)
如何识别 Linux 中 7 天以来运行的进程?
答案1
这是一个开始:
ps -eoetime,pid,user,cmd --sort -etime
您可以选择要显示的任何信息,请参阅man ps
长长的列表。上面的命令列出了按经过时间降序排列的所有进程。如果您只想显示已运行至少 7 天的进程,则需要使用grep
或执行某些操作awk
;在这种情况下,您可能只想打印出etime
和 ,pid
因为稍后您可以在特定进程上打印出您想要的任何数据。
不幸的是,该etime
格式更多是为人设计的,而不是为脚本设计的,但以下内容应该有效(尽管我还没有测试过):
ps -eoetime=,pid= | awk 'int(substr($1,1,index($1,"-"))) >= 7 { print }'
命令行选项简要说明:
-e show all processes
-eo... same as -e -o...
-oetime=,pid= for each process, print the elapsed time and pid.
The '=' suppress the column headers
--sort -etime sort the processes in descending order by elapsed time
(+etime would have been ascending order)