Cron - プログラムを定期的に実行
Virtual Server では、プログラムをスケジュールに従って実行する cron デーモンを使うことができます。時間指定されたコマンドのリストを cron テーブルあるいは略語 "crontab" に保存します。この自分の crontab を使って、 Virtual Server に決まった日時に特定のコマンドを実行するよう指示することができます。
Crontab の作成
crontab の中での環境変数設定は以下のようになります。
NAME = VALUE いくつかの環境変数設定は、 Virtual Server の O/S に合わせて、 cron デーモンによって自動的に設定されます。
cron テーブル指定は、コマンドと 5 個の時間フィールドで構成されます。コマンドは、時間フィールドで指定された時間になると実行されます。 5 個の時間フィールドは以下のとおりです。
フィールド 記載できる値 --------- ------------- 分 0-59 時 0-23 日 1-31 月 1-12, jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec 曜日 0-7, sun, mon, tue, wed, thu, fri, sat (0 and 7 are "sun")
あらゆる値をとれるアスタリスク (*) を使うことができます。 cron テーブルの 6 番目で最後のフィールドが、パラメーター等を含んだ実行されるコマンドです。
以下に vnukelog コマンドを実行する cron テーブルの例を紹介します。
# 以下の cron エントリ実行で作成されたあらゆる出力は、 # MAILTO 環境変数で指定されたメールアドレスに送信されます。 MAILTO="webmaster@mycompany.com" # "vnukelog" コマンドを毎日 1 時 15 分に実行します。 15 1 * * * /usr/local/bin/vnukelog # "vnukelog" コマンドを毎月 1 日午後 11 時 40 分に実行します。 40 23 1 * * /usr/local/bin/vnukelog # "vnukelog" コマンドを月曜日から金曜日までの # 午前 9 時、午後 5 時の 0 分から 30 分の間毎 10 分に実行します。 0-30/10 9,17 * * 1-5 /usr/local/bin/vnukelog # "vnukelog" コマンドを毎年 1 月の毎日曜日 # 午前 4 時 0 分、午前 8 時 0 分、正午 0 分、午後 4 時 0 分、午前 8 時 0 分、 # (0 */4) に実行します。 0 */4 * jan sun /usr/local/bin/vnukelog # "vnukelog" コマンドを毎月、金曜日かつ 1 日、金曜日かつ 15 日、 # 午前 4 時 30 分に実行します。 30 4 1,15 * fri /usr/local/bin/vnukelog # "vnukelog" コマンドを毎年 8 月 19 日 0 時 0 分に実行します。 # 下記 2 例はまったく同一内容です。 0 0 19 8 * /usr/local/bin/vnukelog 0 0 19 aug * /usr/local/bin/vnukelog
Crontab のインストール
% crontab ~/cronjobs 上記によって、指定は cron システムデーモンに登録されます。 cron システムデーモンに現在登録されている指定を確認するためには、以下のコマンドを実行します。
% crontab -l
マニュアル
% man cron % man crontab % man 5 crontab
|