tools24.jp

※ 当サイトはアフィリエイト広告を利用しています。リンク先のサービスへの申し込みがあった場合、 当サイトに報酬が支払われることがあります。なお、ツールの機能・ランキング・評価には一切影響しません。

Cron式の書き方完全ガイド——定期実行タスクを正確にスケジュールする方法

最終更新: 2026年3月29日 ・ 読了時間: 約7分

「毎日9時にバックアップを取りたい」「毎週月曜にレポートを送信したい」——サーバーやクラウド環境で定期実行タスクを設定するとき、避けて通れないのがCron式(クーロン式)です。 このガイドでは、Cron式の基本構文から実用パターン、クラウド環境での活用法まで体系的に解説します。

Cronとは

CronはUNIX系OS(Linux・macOS)に標準搭載されている定期実行デーモンです。 1975年にベル研究所で開発されて以来、50年以上にわたりサーバー管理の基盤として使われ続けています。 crontabファイルにスケジュールとコマンドを記述するだけで、指定した日時に自動でタスクを実行できます。

現在ではLinuxサーバーだけでなく、AWS CloudWatch Events、Google Cloud Scheduler、GitHub Actions、Vercel Cron Jobsなど、多くのクラウドサービスがCron式の構文を採用しています。 Cron式を覚えれば、あらゆる環境で定期実行タスクを設定できるようになります。

Cron式の5つのフィールド

標準的なCron式は、スペースで区切られた5つのフィールドで構成されます。 左から「分・時・日・月・曜日」の順に並び、それぞれ指定可能な値の範囲が決まっています。

フィールド指定可能な値説明
分(Minute)0〜59何分に実行するか
時(Hour)0〜23何時に実行するか(24時間表記)
日(Day of Month)1〜31何日に実行するか
月(Month)1〜12何月に実行するか
曜日(Day of Week)0〜7(0と7は日曜)何曜日に実行するか

例えば 30 9 * * * は「毎日9時30分に実行」を意味します。*は「すべての値」を表すワイルドカードです。

特殊文字の意味

Cron式では4つの特殊文字を使ってスケジュールを柔軟に指定できます。 これらを組み合わせることで、複雑なスケジュールも1行で表現可能です。

文字名称意味
*アスタリスクすべての値にマッチ* * * * *(毎分実行)
,カンマ複数の値をリスト指定0 9,18 * * *(9時と18時)
-ハイフン値の範囲を指定0 9 * * 1-5(月〜金の9時)
/スラッシュ間隔(ステップ値)を指定*/5 * * * *(5分おき)

実用パターン15選

実務でよく使うCron式のパターンをまとめました。コピーしてそのまま使えます。

用途Cron式説明
毎日9時0 9 * * *朝の定時バッチに最適
毎週月曜9時0 9 * * 1週次レポートの送信に
毎月1日の0時0 0 1 * *月次集計・請求処理に
5分おき*/5 * * * *死活監視・ヘルスチェック
1時間おき0 * * * *データ同期・キャッシュ更新
営業日のみ9時0 9 * * 1-5平日(月〜金)のみ実行
週末のみ10時0 10 * * 0,6土日のみ実行
毎日深夜3時0 3 * * *DBバックアップ・ログローテーション
15分おき*/15 * * * *API ポーリング・メトリクス収集
毎年1月1日0時0 0 1 1 *年次リセット・ライセンス更新
四半期初日0 0 1 1,4,7,10 *四半期ごとのレポート生成
毎日9時と18時0 9,18 * * *朝夕の通知配信に
30分おき(営業時間内)*/30 9-17 * * 1-5業務時間中のみ定期チェック
毎月15日と末日0 0 15,28-31 * *給与・経費の締め処理
毎分(テスト用)* * * * *動作確認時のみ使用

クラウド環境でのCron

主要なクラウドサービスはCron式の構文をサポートしており、サーバーレスで定期実行タスクを運用できます。 それぞれのサービスには固有の拡張構文や制約があるため、移行時には注意が必要です。

AWS EventBridge(旧CloudWatch Events)

6フィールド形式(秒を含まない代わりに年フィールドが追加)を採用。rate(5 minutes)のような自然言語風の指定も可能です。 Lambda関数やStep Functionsとの連携が容易で、サーバーレスアーキテクチャの定期実行に最適です。

Google Cloud Scheduler

標準の5フィールドCron式をそのまま使用できます。タイムゾーン指定(Asia/Tokyo)に対応しており、JSTでの指定が直感的に行えます。 HTTP・Pub/Sub・App Engineをターゲットに実行できます。

GitHub Actions

ワークフローファイルのon.scheduleでCron式を指定します。 タイムゾーンはUTC固定のため、JSTで設定したい場合は-9時間の変換が必要です。 最短間隔は5分ですが、負荷状況により遅延が発生する場合があります。

日本時間(JST)とUTCの注意点

Cron式でもっとも多いミスが、タイムゾーンの変換間違いです。 日本標準時(JST)はUTC+9のため、UTCベースのシステムで日本時間の9時に実行したい場合は、0時(UTC)を指定する必要があります。

日本時間(JST)UTCCron式(UTC環境用)
毎日 9:00 JST毎日 0:00 UTC0 0 * * *
毎日 12:00 JST毎日 3:00 UTC0 3 * * *
毎日 18:00 JST毎日 9:00 UTC0 9 * * *
毎日 0:00 JST前日 15:00 UTC0 15 * * *

日付をまたぐ変換では曜日指定にも影響が出るため、特に注意が必要です。 例えば「毎週月曜の朝2時(JST)」をUTCで表すと「日曜の17時」になり、曜日が1日ずれます。 タイムゾーン指定に対応したサービス(Google Cloud Schedulerなど)では、Asia/Tokyoを直接指定することで変換ミスを防げます。

tools24.jpのCron式ビルダーで組み立てる

Cron式を手書きすると、フィールドの順番を間違えたり、特殊文字の組み合わせでミスが発生しがちです。 tools24.jpのCron式ビルダーを使えば、GUIで条件を選択するだけで正確なCron式を生成できます。 次回実行日時のプレビュー機能もあるので、意図したスケジュール通りに動くかをその場で確認できます。

Cron式ビルダーを使う →

関連ガイド

よくある質問