sar本身不直接生成格式化巡检报告,但可自动采集性能数据并配合脚本输出结构化文本报告;需先启用sysstat服务、验证cron采集任务及二进制日志生成,再用sar -f读取当日saXX文件生成汇总文本,或用sadf转CSV分析,亦可用sa2生成轻量级日终摘要。

sar 本身不直接生成“巡检报告”这类带格式的文档,但它能自动采集并保存每日性能数据,再配合简单命令或脚本,就能稳定输出可读的文本报告——这才是生产环境真正实用的方式。
确保 sysstat 已启用并定时采集
这是所有后续操作的前提。默认每 10 分钟采集一次,数据存为二进制文件(如 /var/log/sa/sa29),由 cron 自动触发:
- 确认服务已启用:sudo systemctl enable --now sysstat
- 检查 cron 任务是否生效:sudo cat /etc/cron.d/sysstat,应含类似 */10 * * * * root /usr/lib64/sa/sa1 -S DISK 的行
- 验证数据生成:ls -l /var/log/sa/sa$(date +%d)(当天文件应存在)
用 sar -f + 日期自动生成当日汇总文本
每天凌晨可通过脚本调用 sar 读取当日二进制日志,输出结构化文本。例如,把以下内容写入 /usr/local/bin/daily-sar-report.sh:
#!/bin/bash
TODAY=$(date +%d)
OUT="/var/log/sa/sar_report_$(date +%Y%m%d).txt"
{
echo "=== $(date '+%Y-%m-%d') 系统性能汇总 ==="
echo
echo "--- CPU 使用率 ---"
sar -u -f /var/log/sa/sa$TODAY | tail -n +3
echo
echo "--- 内存使用 ---"
sar -r -f /var/log/sa/sa$TODAY | tail -n +3
echo
echo "--- 磁盘 I/O (tps/rkB/wkB) ---"
sar -b -f /var/log/sa/sa$TODAY | tail -n +3
echo
echo "--- 平均负载 & 运行队列 ---"
sar -q -f /var/log/sa/sa$TODAY | tail -n +3
} > "$OUT"再添加 cron 定时任务(如每天 00:15 执行):
15 0 * * * root /usr/local/bin/daily-sar-report.sh
导出为 CSV 便于导入 Excel 或做趋势图
若需进一步分析,可用 sadf(sysstat 自带工具)将二进制数据转为 CSV:
- sadf -d /var/log/sa/sa$(date -d 'yesterday' +\%d) -s 00:00:00 -e 23:59:59 -u > /tmp/cpu_yday.csv
- 支持多指标合并:sadf -d /var/log/sa/sa28 -- -u -r -b > all_metrics.csv
- 字段含时间戳、%user、%system、kbmemfree、tps 等,开箱即用
可选:用 sa2 生成轻量级日终摘要
sysstat 自带 sa2 工具,专为生成简洁日终报告设计(默认每天 23:53 运行):
- 它会把当日 saXX 数据汇总成文本文件 /var/log/sa/sarXX(注意不是 saXX,而是 sarXX)
- 内容精简,含 CPU、内存、I/O、负载等关键平均值,适合邮件发送或人工快速浏览
- 如需启用,确保 /etc/cron.d/sysstat 中有类似 53 23 * * * root /usr/lib64/sa/sa2 -A 的行



















