我正在尝试使用 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
这段代码的问题是我不知道它是否完全准确。我有几个问题...首先为什么第一个代码会失败?第二,第二个代码可靠吗?如果不是,我可以使用什么代码来可靠地读取系统的整体 CPU 利用率?谢谢!