cron式を構築する方法
cron式は、Linux、クラウドプラットフォーム、CI/CDパイプライン、ジョブスケジューラで定期的なスケジュールを定義する標準的な方法です。構文はコンパクトですが直感的ではありません — ビジュアルジェネレーターは、タスクがいつ実行されるかを正確に示します。
Cron構文
cron式には5つのフィールドがあります:
┌───────────── 分(0-59)
│ ┌───────────── 時(0-23)
│ │ ┌───────────── 月の日(1-31)
│ │ │ ┌───────────── 月(1-12)
│ │ │ │ ┌───────────── 曜日(0-6、日曜日=0)
│ │ │ │ │
* * * * *
一般的なcronスケジュール
| スケジュール | 式 | 意味 |
|---|---|---|
| 毎分 | * * * * * |
60秒ごとに実行 |
| 5分ごと | */5 * * * * |
:00、:05、:10、:15... |
| 毎時 | 0 * * * * |
各時間の始まりに |
| 毎日深夜 | 0 0 * * * |
毎日00:00に1回 |
| 毎日午前9時 | 0 9 * * * |
毎日09:00に1回 |
| 毎週月曜日午前8時 | 0 8 * * 1 |
毎週月曜日 |
| 毎月1日 | 0 0 1 * * |
毎月1日の深夜 |
| 平日午後6時 | 0 18 * * 1-5 |
月曜日から金曜日 |
cron式を構築する方法
- スケジュールを定義 — ビジュアルコントロールを使って分、時、日、月、曜日の値を選択します。または、「毎時」や「毎日深夜」などのプリセットから始めます。
- 実行をプレビュー — ジェネレーターは次の5回の実行を表示し、スケジュールが正しいことを確認します。
- 式をコピー — crontab、CI/CD設定、またはクラウドスケジューラに貼り付けます。
特殊文字
| 文字 | 意味 | 例 |
|---|---|---|
* |
すべての値 | * * * * * = 毎分 |
*/n |
nごとに | */15 * * * * = 15分ごと |
, |
複数の値 | 0 8,12,18 * * * = 午前8時、正午、午後6時 |
- |
範囲 | 0 9-17 * * * = 9時から17時まで毎時 |
ヒント
- 常に次の実行を確認 — cron式は見落としやすいです。プレビューはタスクがいつトリガーされるかを正確に示します。デプロイする前に確認してください。
- プリセットから始める — 「毎日」や「毎時」などの一般的なスケジュールから始めて調整するのが、ゼロから書くよりも良いです。
- タイムゾーンに注意 — cron時間はシステムのタイムゾーン(通常はサーバー上のUTC)です。パリ時間で午前9時が必要な場合、夏時間中はUTCで
0 7 * * *です。 - 短い間隔でテスト — 新しいcronをセットアップする際、
*/5 * * * *(5分ごと)でテストして動作を確認してから、最終スケジュールに移行します。
よくある質問
cron式の形式は?
標準的なcron式には、スペースで区切られた5つのフィールドがあり、分(0-59)、時(0-23)、月の日(1-31)、月(1-12)、曜日(0-6、0は日曜日)を表します。アスタリスク(*)はそのフィールドの「すべての」値を意味します。
cronで*/5は何を意味しますか?
*/5構文は「5ごと」を意味します。分フィールドでは、*/5は5分ごと(0、5、10、15...)を意味します。時フィールドでは、*/5は5時間ごとを意味します。これは任意のフィールドで機能します。
cron式はすべてのプラットフォームで同じですか?
5フィールド形式は、Linux cron、AWS EventBridge、GitHub Actions、ほとんどのスケジューリングシステムで標準です。一部のプラットフォームは秒または年用に6番目のフィールドを追加します。プラットフォームのドキュメントを確認してください。
毎月の最終日にスケジュールするには?
標準のcronには「最終日」キーワードはありません。スクリプトでの日付チェック付きの毎日実行などの回避策を使用するか、プラットフォーム固有の拡張機能を使用してください(AWS EventBridgeはLを「last」としてサポート)。