如何用排程工作自動清理 Mac
如何用排程工作自動清理 Mac
Mac 維護很容易被延後。快取會膨脹,舊下載與開發資料夾悄悄佔掉數十 GB——若沒有習慣,很少每週主動開啟清理工具。
排程清理把維護變成一次設定、重複執行的工作。NythyCleaner可以按每天、每週、每兩週或每月執行同一批類別,在 App 關閉時仍可透過背景喚醒檢查是否到期,並在完成後發送通知。
為什麼要自動化
- 快取與暫存會再長回來;時間表能控制規模。
- 開發用 Mac(Xcode DerivedData、套件管理器快取、Docker)特別適合定期跑一遍。
- 可預期節奏降低「磁碟快滿」卡在截止前夕的機率。
請謹慎:只勾選理解的類別;部分路徑可能需要完整磁碟取用權限。
macOS 原生能力
系統沒有「每週日清理快取」這類一鍵開關。您可以寫指令稿、launchd plist 或「捷徑」,但要自己維護路徑與權限。
NythyCleaner 這類 App 把排程執行 + launchd封裝進可勾選類別與既有的清理引擎。
NythyCleaner 排程清理如何運作
在 排程清理中設定:
- 總開關
- 間隔:每日、每週、每兩週或每月(實作上「月」約為 30 天)
- 類別(使用者快取、記錄檔、垃圾桶、瀏覽器、Xcode、Homebrew、npm/pip、Docker 等)
偏好寫入 UserDefaults;在至少包含一個類別且正常完成的一次執行後更新 lastRunDate,據此計算下次「到期」時間。
何時算到期
功能開啟、至少選一個類別,且(從未執行過 或 現在時間 ≥ 上次執行 + 間隔)。
兩層機制:背景喚醒與 App 內檢查
| 機制 | 作用 | 大致頻率 |
|---|---|---|
LaunchAgent(~/Library/LaunchAgents/io.nythycleaner.scheduled-cleanup.plist) | 以 /usr/bin/open -g -a NythyCleaner 開啟 App,使結束後仍能檢查是否該清理 | 每 4 小時 |
| App 內排程器 | NythyCleaner 開啟時定期檢查 | 每 30 分鐘 |
4 小時不是您的清理頻率,只是喚醒節奏;真實頻率由您選擇的日/週/月策略決定。
LaunchAgent 何時安裝
只有在至少完成一次會推進日程的成功排程執行後,才會持久安裝背景代理(內部授權標記)。關閉排程清理會移除 plist 並透過 launchctl 卸載。
Pro 訂閱
自動排程執行需要有效的 Pro。 若驗證失敗,執行會被跳過、功能會被關閉、LaunchAgent 會同步移除。
通知
自動執行結束後可發送 macOS 通知(釋出空間、是否有錯誤)。僅在權限狀態為未決定時請求通知授權。
重疊保護
互斥鎖避免兩次排程清理同時執行。
選擇類別
與系統清理類似:使用者快取、記錄檔、暫存、垃圾桶、瀏覽器快取、Xcode、Homebrew、多種開發快取、Docker、郵件附件、Quick Look、App 儲存狀態、字體快取等。
建議先少選幾類,確認節奏後再擴充。
可靠性與權限
- 部分類別需要完整磁碟取用權限。
- Mac 需足夠處於喚醒狀態,
launchd才能啟動 App;長時間睡眠會延後到下次喚醒。
常見問題
會刪個人文件嗎?
只處理所選類別範圍內的內容(快取、垃圾桶、開發產物等)。
為什麼是 4 小時?
在盡快捕捉到期與避免頻繁啟動 App之間的折衷。
解除安裝 App 前?
先關閉排程清理,或手動刪除 ~/Library/LaunchAgents/io.nythycleaner.scheduled-cleanup.plist。
能取代 Time Machine 嗎?
不能。備份仍然必要。
結語
NythyCleaner透過 UserDefaults 持久化日程、每 4 小時 LaunchAgent 喚醒、開啟 App 時每 30 分鐘檢查、Pro 門檻與完成通知,把 Mac 清理變成可自動推進的流程。設定間隔與類別,在需要背景喚醒時完成首次成功執行以授權代理——之後維護更多依賴系統按時叫醒 App,而不是依賴您記得手動開啟。