命令: top -bn1 | grep "Cpu(s)" | awk '{printf "CPU Usage: %.2f%\n", 100 - $8}'1、top 命令用于实时监控系统性能,-b(batch mode 批量模式)和 -n1(运行 1 次)让 top 只执行一次并退出,适合用于脚本。us(user):用户态 CPU 使用率sy(system):内核态 CPU 使用率ni(nice):低优先级任务 CPU 占用id(idle):空闲 CPU 百分比(重点)wa(iowait):I/O 等待占比hi(hardware interrupt):硬件中断占比si(software interrupt):软件中断占比st(steal):虚拟机偷取 CPU 资源占比2、grep "Cpu(s)" 提取 CPU 相关信息top 输出有很多行,我们只需要 CPU 相关的行。grep 过滤掉其他无关的内容,只保留:%Cpu(s): 1.2 us, 0.3 sy, 0.0 ni, 98.2 id, 0.1 wa, 0.0 hi, 0.2 si, 0.0 st3、awk 计算 CPU 使用率 CPU 使用率=100−空闲率 (id)awk '{printf "CPU Usage: %.2f%\n", 100 - $8}'$8 代表第 8 列(空闲率 id)。100 - $8 计算 CPU 使用率:例如:id = 98.2计算:100 - 98.2 = 1.8CPU 使用率 = 1.8%4、printf "CPU Usage: %.2f%\n", 100 - $8:%.2f 保留 2 位小数\n 换行最终输出格式
--------------------------------------------
-
top -bn1
→ 获取 CPU 负载数据 -
grep "Cpu(s)"
→ 过滤出 CPU 相关行 -
awk '{printf "CPU Usage: %.2f%\n", 100 - $8}'
→ 计算100 - 空闲率 id
--------------------------------------------
注:如果你想获取 所有 CPU(多核)的总使用率,可以用 mpstat:mpstat 1 1 | awk '/Average:/ {printf "CPU Usage: %.2f%\n", 100 - $NF}'