bashを使用して単一のCPU、Ubuntuシステムの全体的なCPU使用率を計算しようとしています。作成しているシステム監視スクリプトの全体的なCPU使用率が必要です。問題は、次のコードを使用すると、CPU使用率が常に同じになることです。
top -n 1 | grep "Cpu"
私が見つけた別の方法は、次のコードを使用することです。
read cpu a b c previdle rest < /proc/stat
prevtotal=$((a+b+c+previdle))
sleep 0.5
read cpu a b c idle rest < /proc/stat
total=$((a+b+c+idle))
CPU=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) ))
echo $CPU
このコードの問題は、それが完全に正確かどうかわからないことです。いくつか質問があります...まず、最初のコードが失敗するのはなぜですか?次に、2番目のコードは信頼できますか?そうでない場合、システムの全体的なCPU使用率を確実に読み取るために、どのコードを使用できますか?ありがとう!