cronデーモンの設定について
cronとは
cronとは、ジョブ(スクリプト)をスケジュールに従って自動実行させるデーモンプロセスです。
バックアップ処理や集計処理などの日次や月次といった予め定められた時刻に処理を実行させることができます。
cronデーモンの起動・停止コマンド
psコマンドで表示されるcronのプロセス名は「crond」です。
cronを使用するためには、「crond」プロセスを起動します。
デーモンを停止する
/etc/init.d/cron stop
デーモンを起動する
/etc/init.d/cron start
crontabコマンド
cronの設定を定義するには「crontab」コマンドを実行します。
cronの実行スケジュール情報は「crontabファイル」に記憶されます。
「/etc/crontab」などをviエディターなどで直接編集することは推奨されていません。
# crontab [- u user] {-l|-r|-e}
オプション | 説明 |
---|---|
-e | crontabファイルを編集します。 |
-l | crontabファイルの内容を表示します。 |
-r | crontabファイルを削除します。 |
-u user | userで指定したユーザのcrontabファイルを操作の対象とします。 |
設定されているcronの表示
# crontab -l
cronの編集
# crontab -e
cronの編集
実行スケジュールの設定
cronコマンド実行設定の定義は、6つのフィールドで形成されており、コマンドの実行時間をさまざまな形式で指定します。
分 時 日 月 曜日 コマンド
設定可能な数値は以下の通りです。
項目 | 値 |
---|---|
分 | 0-59 |
時 | 0-23 |
日 | 1-31 |
月 | 1-12(jan~dec形式も記載可) |
曜日 | 0-7 (0または7は日曜日) |
実行時間指定方法は以下の通りです。
指定方法 | 設定値の例 | 説明 |
---|---|---|
毎 | * | 分フィールド指定した場合は1分毎に実行します。 |
リスト | 0,15,30,45 | 分フィールド指定した場合は0,15,30,45分に実行します。 |
範囲 | 1-6 | 月フィールドで指定した場合、1月から6月に実行します。 |
共存 | 1,3,9-10 | 時間フィールドで指定した場合、1時、3時、9時、10時に実行します。 |
間隔 | */10 | 分フィールドで指定した場合、10分間隔で処理を実行します。「/」の後ろに指定した値の間隔で処理を実行します。 |
例えば、毎週日曜日のAM 10:00にシェルスクリプトを実行する場合、下記の定義となります。
00 10 * * 0 /home/user1/bin/backup.sh
コメント
「 # 」が先頭にあると、その行はコメントとして扱われます。
環境変数
crondに設定されている環境変数は、必要最低限となっています。
運用前に、cronからenvコマンドを実行して確認したほうがよいといえます。
例えば/usr/binなどはcrontabに定義するか、各実行コマンドで個別定義する必要があります。
$ crontab -e
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
0 0 * * * /home/user1/bin/Backup.sh
cron書式サンプル
10分ごとに実行する
*/10 * * * *
3時間ごとに実行する
00 0-23/3 * * *
毎日AM 1:30とAM 10:30に実行
30 1,10 * * *