cpustat
是一个用于监控系统 CPU 使用情况的工具,它是 sysstat
包的一部分。默认情况下,cpustat
只显示当前的 CPU 统计信息。但是,你可以通过将输出重定向到文件来生成历史数据报告。
以下是如何使用 cpustat
生成历史数据报告的步骤:
安装 sysstat 包(如果尚未安装):
sudo yum install sysstat
创建一个脚本来自动生成报告:
你可以编写一个简单的 shell 脚本,使用 cpustat
命令并将输出保存到文件中。例如,创建一个名为 generate_cpu_report.sh
的脚本:
#!/bin/bash
# 设置输出文件的路径和名称
OUTPUT_FILE="/var/log/cpu_report.csv"
# 设置报告的时间间隔(秒)
INTERVAL=60
# 设置报告的持续时间(次数)
DURATION=$((60 / INTERVAL))
# 获取当前日期和时间,用于文件名
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
# 写入 CSV 文件头
echo "timestamp,cpu_user,cpu_system,cpu_idle,cpu_iowait,cpu_steal" > "$OUTPUT_FILE"
# 循环生成报告
for ((i=0; i<DURATION; i++)); do
# 获取当前时间戳
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")
# 使用 cpustat 获取 CPU 统计信息,并格式化为 CSV 格式
cpustat -c -u -m 1 $INTERVAL | tail -n 1 | awk '{print "'$TIMESTAMP'","$1","$2","$3","$4","$5"}' >> "$OUTPUT_FILE"
# 等待下一个时间间隔
sleep $INTERVAL
done
echo "CPU report generated: $OUTPUT_FILE"
赋予脚本执行权限:
chmod +x generate_cpu_report.sh
运行脚本:
./generate_cpu_report.sh
这个脚本将会每 60 秒收集一次 CPU 统计信息,并将其保存到 /var/log/cpu_report.csv
文件中。你可以根据需要调整 INTERVAL
和 DURATION
变量的值。
查看生成的报告: 打开生成的 CSV 文件,你将看到类似以下内容的报告:
timestamp,cpu_user,cpu_system,cpu_idle,cpu_iowait,cpu_steal
2023-04-01 12:00:00,15.23,8.76,74.56,1.23,0.22
2023-04-01 12:01:00,14.89,9.12,73.45,1.34,0.20
...
请注意,这个脚本会在指定的持续时间内不断运行,如果你想要定期生成报告而不是连续运行,你可以考虑使用 cron 作业来安排脚本的执行。