macOS可通过启用内置机制实现自动清理:勾选废纸篓30天自动清空;用sudo log config限制诊断日志大小;配置newsyslog压缩轮转系统日志;用launchd定时清理用户缓存与日志。
macos 本身不提供“一键自动清理缓存”的图形开关,但可通过组合系统原生机制,让缓存、日志、废纸篓等按规则定期释放空间。核心在于分层启用已内置的自动管理能力,而非依赖第三方工具或高危命令。
启用废纸篓自动清空(唯一系统级自动行为)
这是 macOS 唯一全局生效的自动清理策略,同时作用于本地废纸篓和 iCloud 同步废纸篓(需开启 iCloud 桌面与文稿):
- 打开访达 → 顶部菜单栏「访达」→「偏好设置」→「高级」→ 勾选「30天后移除废纸篓中的项目」
- 设置立即生效;若未响应,终端运行 killall Finder 刷新即可
限制 Unified Logging 磁盘占用
/var/db/diagnostics 默认无限增长,可能悄悄吃掉数十 GB。用终端设上限(推荐 1–3 GB,依剩余空间调整):
- 执行:sudo log config --mode "keep-rolling-2GB"
- 验证效果:sudo du -sh /var/db/diagnostics,观察是否稳定在设定值附近
配置 /var/log 日志轮转与压缩
system.log、secure.log 等由 newsyslog 管理,默认每小时触发一次:
- 确认 /etc/newsyslog.conf 中对应条目含 z 标志(启用压缩)
- 可手动测试:sudo newsyslog(立即执行轮转)
- 旧日志自动压缩为 .gz,过期归档被删除,无需干预
用 launchd 定期清理用户缓存与日志
~/Library/Caches 和 ~/Library/Logs 无系统轮转机制,但可安全交由 launchd 定时处理:
- 创建脚本(如 ~/bin/clean-user-caches.sh),内容为:
- find "$HOME/Library/Caches" -type f -mtime +30 -delete
- find "$HOME/Library/Logs" -type f \( -name "*.log" -o -name "*.out" \) -mtime +60 -delete
- 赋予执行权限:chmod +x ~/bin/clean-user-caches.sh
- 配置 launchd plist 实现每周运行一次(避开应用运行中文件锁定风险)


















