Back

Crontabの5つのアスタリスクは何を意味するのか?(システムスケジューリングの基礎)

サーバーを管理する際、定期的に実行する必要があるタスクが常にあります。

ログファイルのクリーンアップ、データベースのバックアップ、メールの送信などが典型的な例です。Linux環境では、これらのタスクをスケジュールするための標準ツールは Cron です。

しかし、初心者にとって、Cron式は暗号のように見えるかもしれません。

* * * * *

これら5つのアスタリスクが何を意味するのかを解読し、いくつかの一般的な落とし穴について説明しましょう。

1. Crontab構文の構造

標準的なLinuxのCron式は5つのフィールドで構成されています。

*     *     *     *     *
分    時    日    月    曜日
(0-59) (0-23) (1-31) (1-12) (0-7)
  • 分: 0 から 59
  • 時: 0 から 23
  • 日: 1 から 31
  • 月: 1 から 12
  • 曜日: 0 から 7 (0と7の両方が日曜日を表し、1=月曜日...)

2. 特殊文字の魔法

単純な数字以外にも、特殊文字を使用して柔軟なスケジューリングが可能です。

  • * (アスタリスク): すべての値(毎分、毎時...)
  • , (カンマ): 値のリスト(例: 1,3,5 -> 1、3、5に実行)
  • - (ハイフン): 範囲(例: 1-5 -> 1から5まで実行)
  • / (スラッシュ): ステップ値(例: */10 -> 10単位ごとに実行)

  • 30 04 * * *: 毎日午前04:30に実行。
  • */15 * * * *: 15分ごとに実行(0, 15, 30, 45)。
  • 0 9 * * 1-5: 平日(月〜金)の午前09:00に実行。

3. よくある間違い:「日」と「曜日」

Crontab設定で最も混乱しやすい部分は、「日」 フィールドと 「曜日」 フィールドの相互作用です。

両方のフィールドに特定の値(* ではない)が設定されている場合、コマンドは いずれか の条件が満たされたときに実行されます(OR条件)。

例えば:
0 0 1,15 * 5

これは「毎月1日と15日」および「毎週金曜日」に実行されます。(「1日または15日に該当する金曜日のみ実行」という意味ではありません!)

結論

Cronはシンプルですが強力なツールです。

しかし、誤って設定されたCronジョブは、サーバーリソースを枯渇させたり、重要なバックアップを見逃したりする原因になります。

複雑なスケジューリングが必要な場合は、常にオンラインのCrontabジェネレーターを使用して式を確認するか、JenkinsやAirflowのような専門的なスケジューリングツールの導入を検討してください。

TechLinuxCronDevOps

関連ツールを見る

Pockitの無料開発者ツールを試してみましょう