DevToolPal
日本語

Cron 式

30 秒ごと

cron は 1 分未満を指定できないため、crontab に 2 行書くのが定番です。1 行は毎分ちょうどに、もう 1 行は 30 秒 sleep してから実行します。

* * * * * Cron 式パーサーで開く

標準の cron には秒フィールドがありません。2 行の crontab で 1 分に 2 回実行できます。Quartz と Spring は秒を直接指定できます。Kubernetes と GitHub Actions ではこの頻度で実行できません。

フィールドごとの解説

フィールド 値 該当
分 * すべての値
時 * すべての値
日 * すべての値
月 * すべての値
曜日 * すべての値

次回の実行時刻

例:2026年1月1日 以降の最初の 6 回(UTC)。

  1. 2026年1月1日(木) 00:01:00
  2. 2026年1月1日(木) 00:01:30
  3. 2026年1月1日(木) 00:02:00
  4. 2026年1月1日(木) 00:02:30
  5. 2026年1月1日(木) 00:03:00
  6. 2026年1月1日(木) 00:03:30

そのまま使える書き方

crontab
* * * * * /path/to/command
* * * * * sleep 30; /path/to/command

crontab -e でこの行を追加します。CRON_TZ や TZ を設定しない限り、サーバーのタイムゾーンで実行されます。

Kubernetes CronJob: このスケジューラーではこのスケジュールを実現できません。

GitHub Actions: このスケジューラーではこのスケジュールを実現できません。

GitHub Actions は常に UTC を使い、間隔は最短 5 分です。混雑時は開始が遅れることがあります。

Quartz
0/30 * * * * ?

Quartz は先頭に秒を置き、日か曜日のどちらかに ? が必要です。曜日は日曜始まりの 1〜7 なので、英語の略称を使うほうが安全です。

Spring
@Scheduled(cron = "*/30 * * * * *")

Spring の @Scheduled(cron = …) は 6 フィールド:秒と通常の 5 フィールドです。

よくある質問

› 30 秒ごとの cron 式はありますか?

標準の 5 フィールドの cron にはありません。crontab を 2 行(片方に sleep 30)にするか、OnUnitActiveSec=30s の systemd タイマー、または Quartz の 0/30 * * * * ? を使います。

› * * * * * はどのタイムゾーンで実行されますか?

Cron は実行するマシンやサービスのタイムゾーンを使います。Linux では CRON_TZ や TZ を設定しない限りシステムのタイムゾーン、Kubernetes の CronJob は spec.timeZone で指定でき、GitHub Actions は常に UTC です。

› デプロイ前にスケジュールを確認するには?

このサイトの Cron 式パーサーで * * * * * を開いてください。各フィールドを解説し、今後の実行時刻をローカル時刻または UTC で一覧表示します。処理はすべてブラウザー内です。