cronの設定方法

cronを利用すると定期的にスクリプトを実行できます。ここでは、cronの概要と「/etc/crontab」を利用したジョブスケジューリングの設定方法について解説します。

cronとは

定期的にジョブを実行したい場合は、cron機能を利用します。

cronは、crond(デーモン)crontabコマンド で構成されます。1分ごとにcrondが起動され、crontabファイルのスケジュールを調べて、実行すべきジョブがあれば実行します。

スケジューリングの編集は、以下の方法で行えます。

  • crontabコマンド を利用する
  • /etc/crontab に書き込む

「/etc/crontab」で設定

「/etc/crontab」ファイルに書き込む方法での設定手順例を確認します。

スクリプトファイル格納

下記ディレクトリ配下に定期的に実行させたいスクリプトを格納します。

  • /etc/cron.hourly
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monthly

「/etc/crontab」を編集

上記ディレクトリ配下に格納したスクリプトが定期実行されるように「/etc/crontab」を編集します。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

# run-parts
01 * * * * root run-parts /etc/cron.hourly
05 2 * * * root run-parts /etc/cron.daily
20 2 * * 0 root run-parts /etc/cron.weekly
40 2 1 * * root run-parts /etc/cron.monthly

左から順に「min hour day month week 実行するコマンド」となっています。

※run-parts:引数に指定したディレクトリ内のスクリプトを全て実行する。

記述例

# 5分おきに実行
*/5 * * * * [コマンド]

# 1時, 2時, 5時, 6時, 7時, 8時に実行
* 1,2,5-8 * * * [コマンド]

設定反映

crondを再起動して設定を反映します。

/etc/init.d/crond restart