$ man context-wiki/cron-jobs
インフラストラクチャintermediate
Cron ジョブ
寝ている間に動くスケジュール自動化
Cron ジョブとは何か
Cron ジョブは、特定の時刻に自動で実行されるスケジュールタスクだ。一度設定すれば、あとは忘れていい。スケジュールとコマンドを定義する。システムがそのスケジュール通りに、手動介入なしで実行する。アラームも不要。リマインダーも不要。「トラッカーを実行するのを忘れた」もない。システムが処理する。パターンはシンプルだ。いつも手動でやるのを忘れてしまうことを自動化する。
コード
Cron 構文の読み方
Cron 構文は暗号的に見えるが、シンプルなパターンに従っている。5 つのフィールド:分、時、日、月、曜日。
0 20 * * * は「毎日午後 8 時に実行」を意味する。
0 9 * * 1 は「毎週月曜日の午前 9 時に実行」を意味する。
*/30 * * * * は「30 分ごとに実行」を意味する。
0 0 1 * * は「毎月 1 日の深夜 0 時に実行」を意味する。
アスタリスクは「毎回」を意味する。数字は「この値のとき」を意味する。スラッシュは「N 間隔ごと」を意味する。いくつか読めば、パターンが掴める。暗記する必要はない。既存の Cron スケジュールを読む方法と、Claude に新しいものを書いてもらう方法さえ分かればいい。
プロのコツ
実際に使っている Cron ジョブ
デイリートラッカーは毎晩 8 時に実行される。git コミットをスキャンし、コンテンツの数を数え、アウトプットスコアを計算し、ダッシュボード画像を生成し、すべてを記録する。手動で実行することは一度もない。朝に結果を確認するだけだ。
ウェブサイトのコンテンツはスケジュールで自動更新される。ブログ記事、ログエントリー、バイタルデータが手動デプロイなしでリフレッシュされる。新しいコンテンツは自動的にコミットされプッシュされる。
Vercel への定期プッシュ。Cron ジョブが git push をトリガーし、Vercel がそれを検知してサイトを再ビルドする。コンテンツの変更は何も触らなくても公開される。
これらはすべて以前は忘れがちな手動タスクだった。今ではただ実行される。
パターン
Cron ジョブはどこで動くか
Cron ジョブは複数の場所で実行できる。ローカルマシン上(crontab)、サーバー上、Vercel 上(vercel.json の cron 設定)、GitHub Actions 上(スケジュールワークフロー)。
ウェブ関連の自動化には、Vercel cron と GitHub Actions が最も信頼性が高い。ノートパソコンを閉じていても動作する。ローカルの crontab は開発やテストには問題ないが、本番の自動化には向かない。
Vercel のアプローチ:vercel.json に cron 設定を追加し、ジョブを処理する API ルートを作成すれば、Vercel がスケジュール通りにトリガーする。GitHub Actions のアプローチ:スケジュールトリガー付きのワークフロー YAML を作成し、ステップを定義すれば、GitHub がスケジュール通りに実行する。どちらでも動く。Vercel はウェブプロジェクトにはシンプル。GitHub Actions は汎用的な自動化にはより柔軟。
knowledge guide
関連記事