最大CPU使用率で最大プロセス数を実行するユーザーのリスト

最大CPU使用率で最大プロセス数を実行するユーザーのリスト

コマンドで始まる

ps -eo user,pcpu,pid,args | sort -rnk 3 | head -30

このコマンドの出力を、最も多くのプロセスがあり、CPU使用率を消費するcsvファイルに解析するにはどうすればよいですか?どんな提案でも

答え1

あなたはそれを使用することができますミラー、その後実行

ps -eo user,pcpu | mlr  --n2c  --repifs -N cat | mlr --csv stats1 -f "%CPU" -a count,sum -g USER

このようなものを手に入れよう

ユーザー %CPU_count %CPU_sum
8 0.000000
ユーザー名 8 0.200000
mysql 1 0.000000
www-データ 5 0.000000

答え2

ps -eo user,pmem,pcpu,pid,args --no-headers | sort -rnk 3,3 | head -n30 | awk '{ print $1 "," $3 "," $5 }'

それ以外の場合は、ヘッダー行が出力に表示されることがあるため、この--no-headersオプションが追加されました。psこれは出力フィールドにコンマがまったくないと仮定するため、CSVエスケープロジックは必要ありません。 CSVエスケープロジックが本当に必要な場合は、Pythonや他の言語で書いてこのモジュールを使用する必要があります。 CSVエスケープロジックは難しいです。

答え3

これはあなたに役立ちます:

ps -eo user,pmem,pcpu,pid,args | sort -rnk 3 | head -30 | awk '{OFS=","; print $1,$3,$5}'

編集する前の最初の質問に対する答えです。

答え4

少し汚れているかもしれませんが、効果的です。

ps -eo user,pmem,pcpu,pid,args --no-headers | sort -rnk 3,3 | head -n 30 | awk '{ print $1 "," $3 "," $5 " " $6 " " $7 " " $8 " " $9 " " $10 " " $11 " " $12 " " $13}'

関連情報