如果这是一个双重/三重帖子,我深表歉意。我找到了多个答案,并且所有答案都返回略有不同的结果。我非常不确定哪一个是应该遵循的“正确”的,或者其中任何一个实际上没有为我提供正确的值。
我有一台 Linux 机器,无法在其上安装更多应用程序,并且我正在尝试运行一个 bash 脚本,该脚本将定期显示 CPU 总使用情况。下面是我在网上找到的一个,它似乎给了我我想要的东西,但我不是 100% 确信这会提取正确的 CPU 使用信息,因为它从 TOP 提取数据,据我所知,由于它提取 UNIX 机器启动时的平均值,因此不会提取真实值?
提前致谢
echo print `top -n 1 | tr -s " " | cut -d$" " -f10 | tail -n +8 | head -n -1 | paste -sd+ | bc`/ `nproc` | python
最佳答案
直接读取/proc/loadavg
效率更高,从而直接从内核收集数据。
IFS=$' \t/' read -r load_1min load_5min load_15min load_inst_cur load_inst_tot _ </proc/loadavg
echo "Average load over the last minute: $load_1min"
echo "Number of runnable processes this instant: $load_inst_cur of $load_inst_tot"
请注意,平均负载并不是严格意义上的 CPU 使用率——它还测量等待 I/O 资源的进程。
关于linux - 如何从 bash 检查 Linux CPU 使用情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56647743/