centos

centos cpustat如何生成历史数据报告

小樊
48
2025-06-16 13:52:38
栏目: 智能运维

cpustat 是一个用于监控系统 CPU 使用情况的工具,它是 sysstat 包的一部分。默认情况下,cpustat 只显示当前的 CPU 统计信息。但是,你可以通过将输出重定向到文件来生成历史数据报告。

以下是如何使用 cpustat 生成历史数据报告的步骤:

  1. 安装 sysstat 包(如果尚未安装):

    sudo yum install sysstat
    
  2. 创建一个脚本来自动生成报告: 你可以编写一个简单的 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"
    
  3. 赋予脚本执行权限

    chmod +x generate_cpu_report.sh
    
  4. 运行脚本

    ./generate_cpu_report.sh
    

    这个脚本将会每 60 秒收集一次 CPU 统计信息,并将其保存到 /var/log/cpu_report.csv 文件中。你可以根据需要调整 INTERVALDURATION 变量的值。

  5. 查看生成的报告: 打开生成的 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 作业来安排脚本的执行。

0
看了该问题的人还看了