Cron表現を解説 心を失わずにスケジュールを書く
cronの構文に関する実用的なリファレンス:5つのフィールド、特別な記号、10の使用可能な表現、およびスケジュールの作成と検証ができるcron表現生成ツール。
CronはUnix系システムでタスクを実行します。構文は5つの空白で区切られたフィールドで、シンプルに見えますが、平日毎15分に実行したい場合、それが2番目か3番目かを思い出せないことがあります。この情報は常に開いておくべきものです。
5フィールド形式
すべてのCron表現は、正確に5つのフィールドで、スペースで区切られています。
┌─────────────── minute (0–59)
│ ┌─────────────── hour (0–23)
│ │ ┌─────────────── day of month (1–31)
│ │ │ ┌─────────────── month (1–12)
│ │ │ │ ┌─────────────── day of week (0–7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * *
フィールドの参照
| 分野 | 許容値 | 任意の値——すべての単位に一致 | 例 |
|---|---|---|---|
| 30分の時点を意味します。 | 0–59 | * , – / | */15 = 15分ごと |
| 9時(AM)を意味します。 | 0–23 | * , – / | 9-17 = 9時から17時 |
| 月の日 | 1–31 | * , – / ? | 1 = 月の1日 |
| 、12月は | 1–12 | * , – / | */3 = 3ヶ月ごと |
| 週の日 | 0–7 (0=日) | * , – / ? | 1-5 = 月~金 |
任意の値——すべての単位に一致
- * — ワイルドカード、そのフィールド内のすべての値に一致
- , — リストセパレータ:
1,3,5曜日フィールドでは月、水、金を意味 - – — リージョン:
9-17時間フィールドでは9時から17時まで - / — ステップ:
*/15分フィールドでは毎15分;2/33つごとに増えて2から始まる - ? — 特定の値なし(月の日または週の日のみ、Quartz/Springスケジューラーで使用)
一般的なCron表現
| 表現 | 説明 |
|---|---|
* * * * * | 毎分 |
*/5 * * * * | 5分ごと |
*/15 * * * * | 15分ごと |
0 * * * * | 毎時間、時刻に実行 |
0 0 * * * | 毎日深夜 |
0 9 * * 1-5 | 平日の9時 |
0 9-17 * * 1-5 | 平日の9時から17時まで、毎時間 |
0 0 * * 0 | 毎週日曜日に午前0時実行 |
0 0 1 * * | 毎月1日の午夜 |
0 0 1 1 * | 1月1日の午夜 |
実際の3つの例
1. データベースバックアップ(午夜)
0 0 * * *
30分の時点を意味します。 0, 時間 0, すべての日。00:00に1回実行され、ピーク時間帯に影響を与えない、シンプルで予測可能。
2. API同期(毎15分)
*/15 * * * *
*/15 分フィールドでは「15分ずつ、0から始まる」という意味で、毎時間の:00、:15、:30、:45に実行されます。他のすべてのフィールドは *, よって24時間中実行されます。
3. 週間のクリーンアップ(月曜日6時)
0 6 * * 1
30分の時点を意味します。 0, 時間 6, 月の何日でも、何ヶ月でも、曜日 1 (月曜日)。週に1回実行されます。変更 1 に 5 チームにとって金曜日がより適している場合に変更できます。
スケジュールを構築・検証
すべての組み合わせを記憶する必要はありません。重要なのは、どこを確認できるかです。フィールドを視覚的に設定し、表現を形成しながら確認する Cron式ジェネレータ を使用して、フィールドを視覚的に設定し、表現を形成しながら確認します。候補の表現を設定した後、それを Cron表現:実用的な参考書と実際の例 1 にコピーして、正確に期待される日時で実行されることを確認します。
5フィールド、4特殊文字、2つのツールで確認できる。これで、何でも信頼できるスケジュールが作れます。
あなたも好きかもしれません
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
