CPU使用率が60%を超える場合、CPU使用率を最も占めるプロセスをお探しですか?

CPU使用率が60%を超える場合、CPU使用率を最も占めるプロセスをお探しですか?

私のUbuntuコンピュータのCPU使用率を測定しようとしています。 CPU使用率が60%を超える場合は、どのプロセスのCPU使用率が最も高いかを判断し、CPU使用率が60%を超えることを示す電子メールを送信する必要があります。 CPU使用率が最も高いプロセス名を持つプロセス。

頂上に着くとこんな姿が見えました。

Cpu0  :  20.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  34.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  17.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  20.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

CPU負荷のみを確認し、CPU使用量は確認しない次のスクリプトを思い出しました。上記の目標を達成するにはどうすればよいですか?

#!/bin/bash

top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}' 

電子メールを送信するには、次のコマンドを使用しましたが効果がありました。

echo "Body" | mailx -r "[email protected]" -s "SUBJECT" "[email protected]"

答え1

awkを使用してください:

ps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3!=0.0) print $2,$3,$11}' > some_file.txt

上記のコードは、すべてのプログラムに対してゼロ以外のCPU使用率を提供します。
あなたに与えるpid,%cpu, command_name

CPU使用量を60以上にするには、$3!=0.0次のように置き換えます。$3>=60

出力をファイルとして保存しましたsome_file.txtcatこのファイルをインポートしてmailコマンドにパイプすることができます。

試してみてください:メールを送る

cat some_file.txt | mailx -r "[email protected]" -s "SUBJECT" "[email protected]"

関連情報