cron(定期実行)の設定 |
---|
各種デーモンやシェルを、ある一定の時間に自動実行をしたい場合に cron(定期実行)を使用します。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.cron について | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cron とは、毎時間、毎日、毎週、毎月というタイミングで何かのプログラムやシェルを起動させたい場合に使用します。 Turbo Linux では、システム(”/var/log”にあるログの事です。)のログを1週間単位でファイルを分けていますが、 これは cron が1週間毎で別ファイルにリネームしているようです。 Turbo Linux では標準でインストールされているので特にインストール作業は要りません。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.設定について | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
◆ 設定ファイル cron の設定ファイルは”/etc/crontab”で行います。 初期状態では以下の様になっています。
まず、(1)〜(4)の各行の説明です。 ・(1) はシェル環境を指定します。 ・(2) はコマンドを実行するためのパスを指定します。 ・(3) はプログラム実行結果をメールで送信するユーザーを指定します。 送信したくない場合はMAILTO=""と記述します。 ・(4) はスクリプト、シェルが実行される場合のホームディレクトリィを指定します。 (5)以降に定期的に実行したいプログラムを記述していきます。 書式は以下の様になっています。 <<分>> <<時>> <<日>> <<月>> <<曜日>> <<ユーザー名>> <<コマンド>> <<( コマンドの引数 )>> 分、時などの間はスペースを入れて区切ります。 つまり(5)の箇所の説明としては、毎時1分になったら、 ユーザー root でコマンド run-parts(引数を /etc/cron.hourly として)実行する。と言う事になります。 ◆ 追加、修正の仕方 分〜曜日は、以下のように指定してください。
※ ”*”を指定した場合はすべての範囲を指定したことになります。 また以下の様な書式も可能です。(分のフィールドを例に) ・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の内容です。
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ページに戻る |