Macのクリーンアップをスケジュールタスクで自動化する方法
Macのクリーンアップをスケジュールタスクで自動化する方法
Macのメンテナンスは先延ばししがちです。キャッシュは増え、古いダウンロードや開発用フォルダは何十GBも使うのに、毎週クリーナーアプリを開く習慣はなかなか付きません。
スケジュールクリーンアップは、メンテを一度設定すれば繰り返し実行されるタスクにします。NythyCleanerは同じカテゴリを毎日・毎週・隔週・毎月のリズムで走らせ、アプリを終了していてもバックグラウンドで起こして確認でき、終われば通知できます。
自動化の理由
- キャッシュや一時ファイルは勝手に戻る。スケジュールで上限を保てる。
- 開発用Mac(DerivedData、パッケージマネージャ、Docker)は定期実行の恩恵が大きい。
- 予測できる間隔で「容量ギリギリ」を減らせる。
慎重に:分かるカテゴリだけ。フルディスクアクセスが要る項目もあります。
macOS単体でできること
macOSに「毎週日曜にキャッシュ削除」といった簡単スイッチはありません。シェル、launchd、ショートカットは可能ですが、パスと権限は自分で保守します。
NythyCleanerのようなアプリはスケジュール実行+launchdを選べるカテゴリと既存のクリーンアップエンジンで包みます。
NythyCleanerの仕組み
スケジュールクリーンアップで次を選びます。
- オン/オフ
- 間隔:毎日・毎週・隔週・毎月(実装では月は約30日)
- カテゴリ(ユーザキャッシュ、ログ、ゴミ箱、ブラウザ、Xcode、Homebrew、npm/pip、Docker など)
設定はUserDefaults。lastRunDateは少なくとも1カテゴリ付きで完了した実行の後に更新され、次回の「期限」計算の基準になります。
実行が「期限」のとき
有効、カテゴリが1つ以上、かつ前回なしまたは現在時刻 ≥ 前回 + 間隔。
二段構え:バックグラウンド起動とアプリ内チェック
| 仕組み | 役割 | おおよその頻度 |
|---|---|---|
LaunchAgent(~/Library/LaunchAgents/io.nythycleaner.scheduled-cleanup.plist) | /usr/bin/open -g -a NythyCleaner でアプリを開き、終了中でも自動処理を確認できる | 4時間ごと |
| アプリ内スケジューラ | NythyCleaner起動中、期限を確認 | 30分ごと |
4時間は「掃除の頻度」ではありません。起こす間隔だけです。実際の頻度は選んだ毎日/毎週/毎月です。
LaunchAgentが入る条件
カレンダーが進む成功したスケジュール実行が少なくとも1回あるまで、エージェントを常設しない設計です(内部の同意フラグ)。機能オフならplistは削除されlaunchctlでunloadされます。
Proサブスクリプション
自動スケジュール実行には有効なProが必要です。検証に失敗すると実行はスキップ、機能はオフ、LaunchAgentは**同期(削除)**されます。
通知
自動実行完了後に通知(解放容量・問題の有無)。許可リクエストは未確定のときだけ。
重複実行
ゲートで同時に2本走らせません。
カテゴリの選び方
システムクリーンアップ系:キャッシュ、ログ、一時ファイル、ゴミ箱、ブラウザ、Xcode、Homebrew、各種開発キャッシュ、Docker、メール添付、Quick Look、アプリ状態、フォントキャッシュなど。
最初は少数からがおすすめです。
信頼性
- カテゴリによってフルディスクアクセスが必要。
- Macが十分起きていること。スリープが長いと次の起動まで待ちます。
FAQ
個人ファイルまで消す?
選んだカテゴリの範囲だけです。
なぜ4時間?
反応の速さと起動頻度のバランスです。
アンインストール時?
先にスケジュールをオフにするか、~/Library/LaunchAgents/io.nythycleaner.scheduled-cleanup.plistを削除。
Time Machineの代わり?
いいえ。
まとめ
NythyCleanerは永続スケジュール、4時間ごとのLaunchAgent、起動中30分ごとの確認、自動実行のPro要件、完了通知を組み合わせます。間隔とカテゴリを決め、最初の成功実行でバックグラウンド起動を認めれば、メンテは記憶に頼らず回ります。