按 etime 排序 PS 命令
Sort PS command by etime
所以我正在尝试开发一个脚本来查找特定进程,并杀死 运行 时间最长的进程。试图让命令按经过的时间排序正在成为问题。这是我 运行 的命令,我知道有很多 |并且可能更清洁为什么要执行所有这些操作,但我对使用 awk 还很陌生。
ps -eo pid,cmd,stat,etime --sort=etime | grep cassi32 | awk ' == "/rESTECH"' | awk ' == "S"'
我得到的输出是这样的。
5703 cassi32 /rESTECH S 00:40
65504 cassi32 /rESTECH S 1-21:45:39
65520 cassi32 /rESTECH S 03:21:39
65521 cassi32 /rESTECH S 3-15:02:37
65531 cassi32 /rESTECH S 1-21:44:39
如您所见,etime 列似乎没有任何特定顺序,而是按 PID 排序。
关于如何按 etime 排序的任何想法。完成后我可以处理杀戮部分。
您可以将命令行缩减为:
ps -eo pid,cmd,stat,etime --sort=etime |
awk '/cassi32/ && (=="/rESTECH") && (=="S")'
但是在进行任何排序之前唯一要做的就是你的 ps
命令,所以如果这没有产生你想要的顺序,那么请阅读你的 ps
手册页来找出你的选项真的应该用。
我可以访问几台 UNIX 机器,但其中 none 有一台 ps
支持您正在使用的选项,因此我无法对其进行测试。
你能在最后通过管道进行排序吗?并可能仅使用一个 awk 来简化管道:
例如
ps -eo args,pid,etime | awk ' == "cassi32" && == "/rESTECH" && == "S"' | sort -k 5
您拥有的 ps
版本(以及我正在测试的版本)似乎无法正确排序基于时间的键的某些子集。不过,这似乎可以满足您的要求:
ps -eo pid,cmd,stat,etime --sort start_time | awk ' == "cassi32" && == "/rESTECH" && == "S"'
按 start_time
排序似乎更可靠一些,至少在我的系统上是这样,而且它与 etime
或运行时间直接相关。
所以我正在尝试开发一个脚本来查找特定进程,并杀死 运行 时间最长的进程。试图让命令按经过的时间排序正在成为问题。这是我 运行 的命令,我知道有很多 |并且可能更清洁为什么要执行所有这些操作,但我对使用 awk 还很陌生。
ps -eo pid,cmd,stat,etime --sort=etime | grep cassi32 | awk ' == "/rESTECH"' | awk ' == "S"'
我得到的输出是这样的。
5703 cassi32 /rESTECH S 00:40
65504 cassi32 /rESTECH S 1-21:45:39
65520 cassi32 /rESTECH S 03:21:39
65521 cassi32 /rESTECH S 3-15:02:37
65531 cassi32 /rESTECH S 1-21:44:39
如您所见,etime 列似乎没有任何特定顺序,而是按 PID 排序。
关于如何按 etime 排序的任何想法。完成后我可以处理杀戮部分。
您可以将命令行缩减为:
ps -eo pid,cmd,stat,etime --sort=etime |
awk '/cassi32/ && (=="/rESTECH") && (=="S")'
但是在进行任何排序之前唯一要做的就是你的 ps
命令,所以如果这没有产生你想要的顺序,那么请阅读你的 ps
手册页来找出你的选项真的应该用。
我可以访问几台 UNIX 机器,但其中 none 有一台 ps
支持您正在使用的选项,因此我无法对其进行测试。
你能在最后通过管道进行排序吗?并可能仅使用一个 awk 来简化管道:
例如
ps -eo args,pid,etime | awk ' == "cassi32" && == "/rESTECH" && == "S"' | sort -k 5
您拥有的 ps
版本(以及我正在测试的版本)似乎无法正确排序基于时间的键的某些子集。不过,这似乎可以满足您的要求:
ps -eo pid,cmd,stat,etime --sort start_time | awk ' == "cassi32" && == "/rESTECH" && == "S"'
按 start_time
排序似乎更可靠一些,至少在我的系统上是这样,而且它与 etime
或运行时间直接相关。