最稳妥方式是用系统原生log命令调控统一日志并配合find清理传统日志;推荐设2gb容量上限、按时间用log erase精准清除、手动清理diagnosticreports等传统路径冗余文件。
最稳妥的方式是用系统原生 log 命令调控统一日志行为,再配合 find 定期清理传统日志文件;不建议写全自动脚本反复执行,容易干扰诊断能力或触发权限异常。
用 log config 限制日志磁盘用量(推荐长期设置)
macOS 统一日志默认不限制空间占用,可能随时间膨胀至数 GB。可通过以下命令设上限,让系统自动轮转淘汰:
- 将统一日志总容量限制为 2GB:
sudo log config --mode "level:default" --size-limit 2g - 查看当前配置:
log show --predicate 'eventMessage contains "log config"' --last 1h或直接运行log config --status - 该设置重启后仍生效,且不影响实时记录——超出容量时旧条目自动归档并删除
按时间范围精准清除统一日志(日常维护)
统一日志(/var/db/diagnostics)是数据库格式,不能手动删文件,必须用 log erase:
- 清除 30 天前所有日志:
sudo log erase --since "30 days ago" - 只清某段时间(如 2025 年全年):
sudo log erase --since "2025-01-01" --until "2026-01-01" - 导出后再清空(适合需留档的场景):
log collect --start "2025-01-01" --output ~/Desktop/logs.archive && sudo log erase --since "2025-01-01"
清理传统日志路径中的冗余文件(辅助清理)
这些是普通文件,可安全按修改时间批量处理,重点清理体积大、已归档的旧项:
- 用户级崩溃报告(.crash 文件):
find ~/Library/Logs/DiagnosticReports -name "*.crash" -mtime +30 -delete - Console 导出缓存(常被忽略的大户):
rm -rf ~/Library/Logs/Console/Exports/* - /var/log 下的归档日志(保留 system.log 等活跃日志):
sudo rm -f /var/log/*.old /var/log/*.[0-9] /var/log/*.[0-9].gz - 电源与内存异常日志(深度可选):
sudo find /private/var/db/powerlog -name "*.plg" -mtime +60 -delete
验证是否生效与空间释放
执行完命令后建议快速确认效果:
- 查统一日志当前占用:
sudo du -sh /var/db/diagnostics(清理后应明显缩小) - 看最近日志是否正常输出:
log show --last 1h | head -20 - 检查用户日志目录大小:
du -sh ~/Library/Logs/DiagnosticReports - 清倒废纸篓确保空间真正释放:
rm -rf ~/.Trash/*











