在 CentOS 上,如果你想用 cpustat 写监控脚本,一般分三步:
1️⃣ 安装 cpustat
2️⃣ 了解 cpustat 输出
3️⃣ 写 shell 脚本调用并分析
下面我一步步给你示例。
CentOS 默认可能没有 cpustat:
yum install epel-release -y
yum install cpustat -y
检查是否安装成功:
which cpustat
cpustat 1 5
含义:
1:每 1 秒采样一次5:采样 5 次示例输出:
CPU usr sys idle iowait
0 12 5 80 3
1 20 8 70 2
#!/bin/bash
LOG=/var/log/cpu_monitor.log
INTERVAL=2
COUNT=10
echo "$(date) CPU 监控开始" >> $LOG
cpustat $INTERVAL $COUNT | while read line
do
echo "$(date) $line" >> $LOG
done
echo "$(date) CPU 监控结束" >> $LOG
赋予执行权限:
chmod +x cpu_monitor.sh
./cpu_monitor.sh
#!/bin/bash
THRESHOLD=90
INTERVAL=1
COUNT=5
cpustat $INTERVAL $COUNT | awk -v threshold=$THRESHOLD '
NR>1 {
usage = $2 + $3
if (usage > threshold) {
print "警告: CPU" $1 " 使用率 " usage "%"
}
}'
每天每 5 分钟记录一次:
crontab -e
添加:
*/5 * * * * /root/cpu_monitor.sh
确认是否安装,或改用:
top -bn1 | head
mpstat 1 5
建议用:
pidstat -u -p PID 1 5
如果你愿意,我可以帮你写:
你主要用来 排查性能问题 还是 长期监控?