如何用计划任务自动清理 Mac
如何用计划任务自动清理 Mac
Mac 维护很容易被推迟。缓存会膨胀,旧下载和开发目录悄悄占掉几十 GB——若没有习惯,很少每周主动打开清理工具。
计划清理把维护变成一次配置、反复执行的任务。NythyCleaner可以按每天、每周、每两周或每月运行同一批安全类别,在应用关闭时仍可通过后台唤醒检查是否到期,并在完成后发送通知。
为什么要自动化
- 缓存与临时文件会重新产生;时间表能控制规模。
- 开发机(Xcode DerivedData、包管理器缓存、Docker)特别适合定期跑一遍。
- 可预期节奏减少「磁盘快满」出现在截止前夕的概率。
请谨慎:只勾选理解的类别;部分路径可能需要完全磁盘访问权限。
macOS 原生能力
系统没有「每周日清理缓存」这类一键开关。你可以写脚本、写 launchd plist 或用「快捷指令」,但要自己维护路径与权限。
NythyCleaner 等应用把定时执行 + launchd封装进可勾选类别和已有的清理引擎。
NythyCleaner 计划清理如何工作
在 计划清理中设置:
- 总开关
- 间隔:每日、每周、每两周或每月(实现上「月」约为 30 天)
- 类别(用户缓存、日志、废纸篓、浏览器、Xcode、Homebrew、npm/pip、Docker 等)
偏好写入 UserDefaults;在至少包含一个类别且正常完成的一次运行后更新 lastRunDate,据此计算下次「到期」时间。
何时算到期
功能开启、至少选一个类别,且(从未运行过 或 当前时间 ≥ 上次运行 + 间隔)。
两层机制:后台唤醒与应用内检查
| 机制 | 作用 | 大致频率 |
|---|---|---|
LaunchAgent(~/Library/LaunchAgents/io.nythycleaner.scheduled-cleanup.plist) | 用 /usr/bin/open -g -a NythyCleaner 打开应用,使退出后仍能检查是否该清理 | 每 4 小时 |
| 应用内调度器 | NythyCleaner 打开时定期检查 | 每 30 分钟 |
4 小时不是您的清理频率,只是唤醒节奏;真实频率由您选择的日/周/月策略决定。
LaunchAgent 何时安装
只有在至少完成一次会推进日程的成功计划运行后,才会持久安装后台代理(内部授权标记)。关闭计划清理会卸载 plist 并通过 launchctl 卸载。
Pro 订阅
自动计划运行需要有效的 Pro。 若验证失败,运行会被跳过、功能会被关闭、LaunchAgent 会同步移除。
通知
自动运行结束后可发送 macOS 通知(释放空间、是否有错误)。仅在权限状态为未决定时请求通知授权。
重叠保护
互斥锁避免两次计划清理同时执行。
选择类别
与系统清理类似:用户缓存、日志、临时文件、废纸篓、浏览器缓存、Xcode、Homebrew、多种开发缓存、Docker、邮件附件、Quick Look、应用保存状态、字体缓存等。
建议先少选几类,确认节奏后再扩展。
可靠性与权限
- 部分类别需要完全磁盘访问权限。
- Mac 需足够处于唤醒状态,
launchd才能启动应用;长时间睡眠会推迟到下次唤醒。
常见问题
会删个人文档吗?
只处理所选类别范围内的内容(缓存、废纸篓、开发产物等)。
为什么是 4 小时?
在尽快捕捉到期与避免频繁启动应用之间的折中。
卸载应用前?
先关闭计划清理,或手动删除 ~/Library/LaunchAgents/io.nythycleaner.scheduled-cleanup.plist。
能替代 Time Machine 吗?
不能。备份仍然必要。
结语
NythyCleaner通过 UserDefaults 持久化日程、每 4 小时 LaunchAgent 唤醒、打开应用时每 30 分钟检查、Pro 门槛与完成通知,把 Mac 清理变成可自动推进的流程。设置间隔与类别,在需要后台唤醒时完成首次成功运行以授权代理——之后维护更多依赖系统按时叫醒应用,而不是依赖您记得手动打开。