Automator 可通过串联 log 命令与文件操作实现 macOS 系统日志的提取、结构化导出与带时间戳归档:先用 log show 抓取关键词日志并生成文本摘要,再监控 DiagnosticReports 目录自动打包崩溃报告,最后结合脱敏、.trace 导出及 zip 压缩完成闭环归档。

Automator 本身不直接归档 macOS 的系统日志文件(Unified Logging),因为这些日志是受保护的二进制格式、不以明文持续写入磁盘。但你可以用 Automator 串联 log 命令和文件操作,实现「提取关键日志 → 结构化导出 → 带时间戳归档」的轻量闭环,适合日常排查与周期性存档。
提取指定时段的关键日志条目
系统日志量大,全量查看低效。Automator 可调用 log show 快速抓取含关键词的条目:
- 新建“快速操作”,类型选“工作流”
- 添加“运行 Shell 脚本”动作,Shell 设为
/bin/zsh,输入设为“无” - 脚本内容示例:
log show --last 1h --info --debug 2>/dev/null | grep -i "panic\|error\|failed" | head -20 > ~/Desktop/system-log-$(date +%Y%m%d_%H%M).txt - 保存后右键任意位置触发,或绑定快捷键,结果生成带时间戳的纯文本摘要
自动打包并归档诊断报告
崩溃报告(.crash)、内核 panic(.panic)等诊断文件默认存在 ~/Library/Logs/DiagnosticReports/,手动整理费时:
- 新建“文件夹操作”,监控路径设为上述 DiagnosticReports 目录
- 接“过滤 Finder 项目”,条件设为“创建日期在今天”
- 再接“移动 Finder 项目”到临时文件夹(如
~/Desktop/diag-tmp) - 加“运行 Shell 脚本”:
cd ~/Desktop/diag-tmp && zip -q "diag-$(date +%Y%m%d).zip" *.crash *.panic && rm -f *.crash *.panic - 最后加“显示通知”,提示“今日诊断包已生成”
结构化导出 + 安全脱敏
导出前建议做基础脱敏和元数据标注,便于回溯与协作:
- 所有日志导出脚本开头加上:
echo "# Generated by Automator on $(date)" > /tmp/log-header.txt - 用
sed或awk过滤敏感字段(如 IP、用户名、路径中的个人目录名) - 导出时统一用
log export生成 .trace 文件(二进制但可被 Console.app 读取),再压缩:log export --last 24h --output ~/Desktop/logs-$(date +%Y%m%d).trace && zip -q ~/Desktop/logs-$(date +%Y%m%d).zip ~/Desktop/logs-$(date +%Y%m%d).trace - 归档包名建议含来源标识,例如
syslog-kernel_20260708.trace.zip
触发方式按需选择
这个流程不是开机自启,需明确启动机制:
- 快捷操作:保存为“快速操作”,右键文件夹或桌面直接触发
-
定时执行:做成“应用程序”,配合 launchd 每日凌晨运行(推荐 plist 中设
StartCalendarInterval) - 响应式触发:用“文件夹操作”监控 DiagnosticReports,新报告生成即归档

















