cron(定期実行)の設定

 各種デーモンやシェルを、ある一定の時間に自動実行をしたい場合に cron(定期実行)を使用します。
≪ 項目 ≫
1.cron について
2.設定について
3.ユーザー毎の設定について
4.ユーザーの制限の仕方


 1.cron について
 cron とは、毎時間、毎日、毎週、毎月というタイミングで何かのプログラムやシェルを起動させたい場合に使用します。 Turbo Linux では、システム(”/var/log”にあるログの事です。)のログを1週間単位でファイルを分けていますが、 これは cron が1週間毎で別ファイルにリネームしているようです。 Turbo Linux では標準でインストールされているので特にインストール作業は要りません。


 2.設定について

  ◆ 設定ファイル

 cron の設定ファイルは”/etc/crontab”で行います。
 初期状態では以下の様になっています。

SHELL=/bin/bash <<--(1)
PATH=/sbin:/bin:/usr/sbin:/usr/bin <<--(2)
MAILTO=root <<--(3)
HOME=/ <<--(4)

# run-parts
01****rootrun-parts/etc/cron.hourly <<--(5)
024***rootrun-parts/etc/cron.dairy <<--(5)
224**0rootrun-parts/etc/cron.weekly <<--(5)
4241**rootrun-parts/etc/cron.monthly <<--(5)


 まず、(1)〜(4)の各行の説明です。

 ・(1) はシェル環境を指定します。
 ・(2) はコマンドを実行するためのパスを指定します。
 ・(3) はプログラム実行結果をメールで送信するユーザーを指定します。
  送信したくない場合はMAILTO=""と記述します。
 ・(4) はスクリプト、シェルが実行される場合のホームディレクトリィを指定します。


 (5)以降に定期的に実行したいプログラムを記述していきます。
書式は以下の様になっています。

  <<分>> <<時>> <<日>>  <<月>> <<曜日>>
  <<ユーザー名>> <<コマンド>> <<( コマンドの引数 )>>


 分、時などの間はスペースを入れて区切ります。
 つまり(5)の箇所の説明としては、毎時1分になったら、 ユーザー root でコマンド run-parts(引数を /etc/cron.hourly として)実行する。と言う事になります。


  ◆ 追加、修正の仕方

 分〜曜日は、以下のように指定してください。

フィールド書式
0〜59の間で指定。
0〜23の間で指定。
1〜31の間で指定。
1〜31の間で指定。Jan〜Decの短縮形でもOK。
曜日0〜7の間で指定。(0、7が日曜日です。)Sun〜Satの短縮形でもOK。


  ”*”を指定した場合はすべての範囲を指定したことになります。

 また以下の様な書式も可能です。(分のフィールドを例に)

 ・1-10と指定する事で、1〜10 の範囲で指定できます。 つまり1, 2, 3, ・・・ 9, 10分の場合、定期実行を行います。
 ・0,30と指定する事で、0分、30分の場合、定期実行を行います。
 ・0-59/5と指定する事で、5分置きに定期実行を行います。


 例として”/etc/crontab”最後の行の下に、以下の様に記述します。

 0,30 * * * * root test.sh

 スクリプトの所有者、属性の設定を間違いないようにしてください。

 また初期設定にあるコマンド run-parts は、指定したディレクトリィ直下の実行用シェルスクリプトを実行します。 つまり、(5)の箇所では毎時1分になったら”/etc/cron.hourly”の直下の実行用シェルスクリプトを実行します。 なので、”/etc/cron.hourly”など各ディレクトリィ(毎日単位であれば”/etc/cron.dairy”)の直下に起動用の実行用シェルスクリプトを作成して、ファイルを置いていても定期実行をしてくれます。


 3.ユーザー毎の設定について

 root以外の各ユーザーは”/etc/crontab”を編集できませんので以下のコマンドを実行して編集します。

 crontab << option >>

  設定ファイルの事ではありません

 以下がoptionの内容です。

option意味
-ecrontabファイルを編集する。
-lcrontabファイルの内容を表示する。
-rcrontabファイルを削除する。
-u-u ユーザー名でユーザーを指定できます。(rootのみ指定可)


 crontab -e コマンドで一般ユーザー固有の cron の設定ファイルを作成します。 書式は2.設定についてと同じ書式で追加してください。 作成したファイルは”/var/spool/cron”ディレクトリィの直下に作成されます。(ファイル名は作成したユーザー名と同じです。)


 4.ユーザーの制限の仕方

 cron は、定期実行を設定できるユーザーを制限できます。 以下のファイルを root で作成します。

 ・/etc/cron.allow (許可リストのファイル)
 ・/etc/cron.deny (拒否リストのファイル)

 上記のファイルを vi などのエディタで作成してください。 記述する内容は以下の様に、ユーザー名を1行ずつ記述していきます。

 ”/etc/cron.deny”の編集例

 testuser01
 testuser02

 注意点として、”/etc/cron.allow”と”/etc/cron.deny”の2つファイルが存在した場合は、”/etc/cron.deny”の方が無視されます。 あとここで設定したファイルは、あくまでも crontab コマンドが使用不可になるだけで、 各ユーザーの cron 設定ファイルが残っていた場合は、そのまま定期実行されてしまうので設定ファイルは削除してください。


TOPページに戻る