スクリプト - さまざまな行を切り取り、並べ替えます。

スクリプト - さまざまな行を切り取り、並べ替えます。

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使用率の割合として定義します。プレフィックス-シンボル定義は降順でソートされます。

おすすめ記事