【コピペOK】AWS EventBridgeやLinux Cron式の完全ガイド&便利な自動生成ツール
サーバーエンジニアやバックエンドプログラマーにとって、「定期的な自動化処理」は日々の運用負荷を下げるための重要なミッションです。
例えば、以下のようなタスクです。
-
「毎晩午前3時にデータベースのバックアップを取得し、S3に転送する」
-
「平日の朝9時から夕方18時まで、5分間隔でサーバーの死活監視スクリプトを回す」
-
「毎月1日の深夜0時に、先月分の売上レポートを自動生成してメール送信する」
これらのスケジュールを定義するための共通言語が**「Cron式(クーロンしき)」**です。Linuxサーバーの crontab コマンドはもちろんのこと、現代ではAWSの Amazon EventBridge(旧CloudWatch Events) や、GitHub Actionsのスケジュールトリガーなど、最新のクラウドアリーナでも頻繁に使用されます。
しかし、このCron式は記号だらけで直感的にわかりづらく、「アスタリスク(*)の位置を一つ間違えたせいで、月に1回動くはずが【毎分】動いてサーバーがダウンした」といった笑えないトラブルの原因にもなります。
本記事では、Cron式の基本から応用ルール、そして「絶対に設定ミスをしないための最終兵器」をご紹介します。
1. Cron式の基本フォーマット(5つのフィールド)
一般的なLinuxのCron式は、スペースで区切られた5つのフィールドで構成されています。(※AWSの場合は年を指定する6つ目のフィールドが追加されるなど、環境により若干の拡張があります)
* * * * *
┬ ┬ ┬ ┬ ┬
│ │ │ │ └─ 曜日 (0 - 7) (0と7は日曜日、1=月, 2=火…)
│ │ │ └─── 月 (1 - 12)
│ │ └───── 日 (1 - 31)
│ └─────── 時 (0 - 23)
└───────── 分 (0 - 59)
記号(特殊文字)の意味
特定の数字を書くだけでなく、記号を使って複雑な条件を指定します。
-
*(アスタリスク): 「すべて(毎回)」。例えば「分」が*なら「毎分」となります。 -
,(カンマ): 「複数指定」。例:曜日に1,3,5と書けば「月曜、水曜、金曜」になります。 -
-(ハイフン): 「範囲指定」。例:時に9-18と書けば「朝9時から夕方18時まで」になります。 -
/(スラッシュ): 「間隔指定」。例:分に*/5と書けば「5分おき(5分間隔)」になります。
2. そのまま使える!よく使うCron式のコピペ用実例
現場で使われるパターンは、ある程度限られています。基本の型として以下を覚えておくと便利です。
① 毎日・特定時間に実行する系
-
毎日 午前3時00分:
0 3 * * *(バックアップ処理の王道) -
毎日 朝8時半:
30 8 * * * -
毎日 昼12時ちょうど:
0 12 * * *
② 頻繁に・小刻みに実行する系(監視バッチ等)
-
毎時 0分(1時間おき):
0 * * * * -
5分おき:
*/5 * * * * -
10分おき:
*/10 * * * *
③ 曜日や日時を限定する系
-
平日の朝9時から夕方18時まで、毎時0分(1時間に1回):
0 9-18 * * 1-5 -
毎週 月曜日の朝7時:
0 7 * * 1 -
毎月 1日の深夜0時0分:
0 0 1 * *
3. AWS EventBridgeでの注意点(AWS特有のルール)
LinuxのCronと、AWSのEventBridge (CloudWatch Events) では、記法のルールが少し異なります。
-
フィールドが6つある: 分・時・日・月・曜日・年(省略可) の順に並びます。
-
日と曜日の共存不可: 「日」と「曜日」の両方に
*を入れることはできません。どちらを?(指定なし) にする必要があります。(例:毎日実行する場合は0 3 * * ? *となります) -
時間はUTC(協定世界時): 日本時間(JST)にするには、実行したい時間から「-9時間」して設定する必要があります。(例:日本時間の朝9時なら、AWS上では
0時に設定)。※最近はコンソール画面でJSTを選べるようにもなっています。
4. 【必見】絶対にミスを防ぐ「Cron式ジェネレーター」
Cron式のルールを暗記する必要はありません。重要なのは「意図した通りに正しくスケジュールされるか」という結果です。
特に「5分おき」なのか「5分になった時」なのかを勘違いしたまま本番設定してしまうと、システムに多大な負荷をかける大事故に繋がります。
そこでおすすめなのが、**ブラウザ上で設定条件を選ぶだけで正しいCron式を自動生成してくれる無料ツール**です。
👉 【完全無料】Cron式ジェネレーター&次回実行日チェッカー
なぜこのツールが良いのか?
-
視覚的な操作(GUI): 「分」「時」「日」など、タブを切り替えてチェックボックスやプルダウンを選ぶだけで組み立てられます。
-
次回の実行予定日時が表示される: 生成されたCron式が「次にいつ実行されるか」の予定日時(直近5回分ほど)が下に表示されるため、「本当に自分の意図したタイミングで動くか」を本番投入前に100%確信できます。
-
逆引きも可能: 逆に、他人が書いた謎のCron式(
15 4 1,15 * 5など)を貼り付けて、「これがいつ動くものなのか」を解読することもできます。
まとめ:バッチ処理はテストが命
Cronによる自動化は非常に便利ですが、設定を間違えると取り返しのつかない事態を引き起こします。
基本の文法を理解した上で、実作業ではジェネレーターを活用し、**「次回実行日」をしっかり確認してから本番環境へ適用する**というフローを徹底しましょう!