在 CentOS 里,cpustat 通常来自 sysstat 工具包(命令其实是 mpstat / sar 更常见,但有些系统会装 cpustat,如 pcp 或 goldwynl/cpustat)。下面我分 两种情况 给你示例脚本,你可以按实际环境选用。
mpstat(最常见)yum install -y sysstat
#!/bin/bash
INTERVAL=5
LOGFILE=/var/log/cpu_stat.log
echo "$(date) CPU monitoring start" >> $LOGFILE
while true; do
mpstat $INTERVAL 1 >> $LOGFILE
sleep $INTERVAL
done
赋予执行权限:
chmod +x cpu_monitor.sh
后台运行:
nohup ./cpu_monitor.sh &
cpustat(C 工具)git clone https://github.com/erikdubois/cpustat.git
cd cpustat
make
cp cpustat /usr/local/bin/
#!/bin/bash
INTERVAL=2
COUNT=10
LOGFILE=/var/log/cpustat.log
echo "Time,CPU%,User,System,Idle" > $LOGFILE
for ((i=1; i<=COUNT; i++)); do
DATE=$(date '+%Y-%m-%d %H:%M:%S')
DATA=$(cpustat -n 1 | awk 'NR==2')
echo "$DATE,$DATA" >> $LOGFILE
sleep $INTERVAL
done
top / sar 写更通用脚本sar(CentOS 自带,最稳定)#!/bin/bash
sar -u 2 5 >> /var/log/sar_cpu.log
cpustat 不是 CentOS 默认命令,先确认是否存在:which cpustat
systemd 或 cron如果你能告诉我:
which cpustat 的输出我可以直接帮你写一份可直接用的生产级脚本。