CPU使用率に基づいてユーザーのプロセスをソートしたいです。私はこれを試しました
ps aux|tr -s " "|cut -f3 -d " "| sort -| grep "user" > file name
これはうまくいきますか?
ベストアンサー1
ps
出力の列とソート順を指定できます。要件によっては、後処理に追加のコマンドが必要ない場合があります。
次のコマンドは、CPU使用率に基づいてソートされた指定されたユーザーのプロセスのリストを提供します。 (このhead
コマンドは出力を制限するためにのみ使用されます。)
[root@testvm ~]# ps -o pid,uname,pcpu,command -u root --sort=-pcpu | head
PID USER %CPU COMMAND
1 root 0.5 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
664 root 0.4 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
1226 root 0.2 sshd: root@pts/0
1261 root 0.2 [kworker/0:0]
9 root 0.1 [rcu_sched]
20 root 0.1 [kworker/0:1]
293 root 0.1 [kworker/0:1H]
875 root 0.1 -bash
1008 root 0.1 /usr/bin/python -Es /usr/sbin/tuned -l -P
この-o
オプションは、ここでプロセスID、ユーザー名、CPU使用率、およびコマンド列である出力形式を指定します。
この-u
オプションは、ps
プロセスを特定のユーザー(この場合はroot)に制限します。
この--sort
オプションは、ソート順をCPU使用率の割合として定義します。プレフィックス-
シンボル定義は降順でソートされます。