今日からあなたもLinuxシステム管理者

crontab

コマンド、シェルを定期的または指定日時に実行する。この機能はcronが提供しているが、ジョブの設定はcrontabファイルを編集することで行う。crontabファイルを編集するには-eオプションを指定してcrontabコマンドを実行する。標準ではviが起動する。

[mobile@localhost mobile]$ crontab -e

現在のジョブの一覧を表示するには-lオプションを指定してcrontabコマンドを実行する。以下の例では毎日12:00にbackup.shが起動する。

[mobile@localhost mobile]$ crontab -e
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.1395 installed on Wed Nov 10 12:24:14 2004)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
0 12 * * * backup.sh

ジョブの指定の仕方は左から

分 時 日 月 曜日 コマンド

である。

  1. 分 0-59
  2. 時 0-23
  3. 日 0-31
  4. 月 0-12
  5. 曜日 0-7(0と7が日曜)

特定の数値の他、以下の指定も可能。

全て     *
範囲指定 m-n      (例)1-5 1~5
リスト   m,n,l... (例)1,2,3 1と2と3
間隔     */n      (例)*/2 2時間おき

また、crontabではcron実行時の環境変数を同時に設定することができる。以下の例では火曜~金曜の1:00にbackup.shを実行する。あわせてJAVA_HOMEも設定している。

[mobile@localhost mobile]$ crontab -e
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.1395 installed on Wed Nov 10 12:24:14 2004)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
export JAVA_HOME=/usr/java/jdk1.6.0_12
0 1 * * 2-6 backup.sh

cronがcrontabファイルをチェックするのは1分毎であるため、少なくとも現在時刻より1分後の時刻を指定しないと正常に動作しない。

crontabで設定した通りにcronが動作したかどうかは、/var/log/cronファイルを参照することで確認できる。ただし、このファイルは通常、rootユーザでなければ参照することができない。


新着情報
【オープンソースソフトウェア環境構築】Apple silicon Macで開発環境を構築
【Rust Tips】Actix webでJSONをPOSTする
【Rust Tips】コマンドライン引数を取得する

Copyright(C) 2004-2015 モバイル開発系(K) All rights reserved.
[Home]