Bash 速習チュートリアル

Bash crontab コマンド

1. Cron と Crontab の理解

cron システムは、Unix系オペレーティングシステムにおけるタイムベースのジョブスケジューラ(Job Scheduler)です。
指定された間隔でタスク(「cron ジョブ」として知られています)の実行を自動化します。

cron 自体はこれらのタスクを実行するバックグラウンドサービスですが、crontab はそれらを管理するためのコマンドです。
直接的な「cron」コマンドというものは存在せず、代わりに crontab を使用して cron ジョブのセットアップや制御を行います。

2. crontab の使用方法

crontab コマンドを使用すると、スケジュールされたタスクを定義できます。
これらのタスクは crontab ファイルに記述されます。これは、指定された時間に実行されるべきコマンドのリストを含むシンプルなテキストファイルです。

2.1 Crontab の構文 (Syntax)

crontab コマンドの基本的な構文は以下の通りです:

crontab [オプション]

2.2 オプション

  • -e: 現在のユーザーの crontab ファイルを編集(Edit)する。
  • -l: 現在のユーザーの crontab エントリを一覧表示(List)する。
  • -r: 現在のユーザーの crontab ファイルを削除(Remove)する。

3. Cron ジョブのセットアップ

Cron ジョブは、crontab ファイル内で特定の構文を使用して定義されます。ファイル内の各行が1つのタスクを表し、以下のフォーマットに従います。

* * * * * 実行するコマンド

各フィールドの意味は以下の通りです:

  • 分: 0-59
  • 時: 0-23
  • 日: 1-31
  • 月: 1-12
  • 曜日: 0-7(0 と 7 は日曜日)

各アスタリスク(*)を特定の値や範囲に置き換えることで、特定の時間にコマンドをスケジュールできます。

3.1 タスクのスケジュール例

毎日深夜 0 時にスクリプトを実行するには、次のように記述します。

実行例:

0 0 * * * /path/to/script.sh

このエントリは、毎日 00:00(深夜 0 時)に /path/to/script.sh を実行します。

4. 一般的な用途

Cron ジョブは、主に以下のようなケースで使用されます:

  • バックアップやアップデートなどのシステムメンテナンス(Maintenance)タスクの自動化。
  • 特定の時間や間隔で実行するスクリプトのスケジュール。
  • 定期的なモニタリング(Monitoring)およびレポーティング(Reporting)タスクの実行。