使用这些 ps 选项,我剪切了 10 行并按 CPU 使用率 (pcpu) 对 ps 的输出进行排序:
ps -eo pcpu,etime,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 10
我还需要显示列的名称(就像相同的命令但不切断输出)。
%CPU ELAPSED PID USER COMMAND
0.0 10-23:41:11 1 root init [2]
0.0 10-23:41:11 2 root [kthreadd]
答案1
ps -eo pcpu,etime,pid,user,args --sort=-%cpu | head -11
答案2
这在 Centos 7 上有效。两个单独的 ps 命令。第一个 ps 命令用于获取标题。然后是分号。然后是第二个 ps 命令,其中包含特定的 grep。使用的标题是我的标准标题。
ps -eo user,pid,ppid,lstart,etime,cmd |head -1;ps -eo user,pid,ppid,lstart,etime,cmd | grep <whatever you are grepping for |grep -v grep
让我们将其分解为每部分一行。
ps -eo user,pid,ppid,lstart,etime,cmd |head -1
;
ps -eo user,pid,ppid,lstart,etime,cmd
| grep <whatever you are grepping for>
| grep -v grep
实际产量:
[root@myserver ~]# ps -eo user,pid,ppid,lstart,etime,cmd |head -1;ps -eo user,pid,ppid,lstart,etime,cmd |grep sshd |grep -v grep
USER PID PPID STARTED ELAPSED CMD
root 4673 1 Tue May 17 09:05:14 2022 122-09:29:11 /usr/sbin/sshd -D
root 233733 4673 Tue Sep 13 15:12:12 2022 3-03:22:13 sshd: kbanyas [priv]
kbanyas 234288 233733 Tue Sep 13 15:12:21 2022 3-03:22:04 sshd: kbanyas@pts/0