NythyCleaner
← 博客

如何用计划任务自动清理 Mac

10 分钟阅读
#scheduled-cleanup#macos#automation#launchd#maintenance#pro

如何用计划任务自动清理 Mac

Mac 维护很容易被推迟。缓存会膨胀,旧下载和开发目录悄悄占掉几十 GB——若没有习惯,很少每周主动打开清理工具。

计划清理把维护变成一次配置、反复执行的任务。NythyCleaner可以按每天、每周、每两周或每月运行同一批安全类别,在应用关闭时仍可通过后台唤醒检查是否到期,并在完成后发送通知

为什么要自动化

  • 缓存与临时文件会重新产生;时间表能控制规模。
  • 开发机(Xcode DerivedData、包管理器缓存、Docker)特别适合定期跑一遍。
  • 可预期节奏减少「磁盘快满」出现在截止前夕的概率。

谨慎:只勾选理解的类别;部分路径可能需要完全磁盘访问权限

macOS 原生能力

系统没有「每周日清理缓存」这类一键开关。你可以写脚本、写 launchd plist 或用「快捷指令」,但要自己维护路径与权限。

NythyCleaner 等应用把定时执行 + launchd封装进可勾选类别和已有的清理引擎。

NythyCleaner 计划清理如何工作

计划清理中设置:

  1. 总开关
  2. 间隔每日每周每两周每月(实现上「月」约为 30 天)
  3. 类别(用户缓存、日志、废纸篓、浏览器、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 清理变成可自动推进的流程。设置间隔与类别,在需要后台唤醒时完成首次成功运行以授权代理——之后维护更多依赖系统按时叫醒应用,而不是依赖您记得手动打开。