NythyCleaner
← 部落格

如何用排程工作自動清理 Mac

10 分鐘閱讀
#scheduled-cleanup#macos#automation#launchd#maintenance#pro

如何用排程工作自動清理 Mac

Mac 維護很容易被延後。快取會膨脹,舊下載與開發資料夾悄悄佔掉數十 GB——若沒有習慣,很少每週主動開啟清理工具。

排程清理把維護變成一次設定、重複執行的工作。NythyCleaner可以按每天、每週、每兩週或每月執行同一批類別,在 App 關閉時仍可透過背景喚醒檢查是否到期,並在完成後發送通知

為什麼要自動化

  • 快取與暫存會再長回來;時間表能控制規模。
  • 開發用 Mac(Xcode DerivedData、套件管理器快取、Docker)特別適合定期跑一遍。
  • 可預期節奏降低「磁碟快滿」卡在截止前夕的機率。

謹慎:只勾選理解的類別;部分路徑可能需要完整磁碟取用權限

macOS 原生能力

系統沒有「每週日清理快取」這類一鍵開關。您可以寫指令稿、launchd plist 或「捷徑」,但要自己維護路徑與權限。

NythyCleaner 這類 App 把排程執行 + launchd封裝進可勾選類別與既有的清理引擎。

NythyCleaner 排程清理如何運作

排程清理中設定:

  1. 總開關
  2. 間隔每日每週每兩週每月(實作上「月」約為 30 天)
  3. 類別(使用者快取、記錄檔、垃圾桶、瀏覽器、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,而不是依賴您記得手動開啟。