cron によるプログラムの定期的実行

Linux活用日記


Last modified: June 20th, 2002



指定した時刻に定期的にスクリプトを実行できる cron についてご紹介します.

Linux では大抵, crond というデーモンがあらかじめ起動するようになっています. crontab によりあらかじめ指定した日時に実行されるようになっています.

cron が実際に起動しているかどうかは次のコマンドで確認できます.

$ ps ax | grep -i cron
742 ? S 0:00 cron
7562 ? S 0:00 grep -i cron

この時, 上のように cron が表示されれば crond が起動しています.

cron の設定ファイルは /etc/crontab です. /etc/crontab は次のような内容になっています.

/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

はじめの4行は cron の設定を行うためのものです.6行目以降からが実行されるプログラムが書かれている部分です. 書式は次のようになっています.

曜日 コマンド

分は 0〜59 まで, 時は 0〜23 まで, 日は1〜31まで, 月は 1〜12 まで, 曜日は 0〜7 までの数値を指定します. 曜日については 0 と 7 が日曜日に当たります. 上記のファイルでは "*" が多いのですが, この "*" にするとすべてが有効となります.

上記のファイルの場合, /etc/cron.hourly というディレクトリに入っている実行スクリプを毎時01分に実行し, /etc/cron.daily ディレクトリに入っている実行スクリプトは毎日午前4時02分に実行することになっています.

自分で cron を設定する場合には次のコマンドを使います.

$ crontab -e

設定には上記の書式に従って作成します. 編集が終わって保存すれば新しい設定が有効になります.

設定した内容を確認する場合は次のコマンドを使います.

$ crontab -l

また, cron の設定を削除する場合は次のコマンドを使います.

$ crontab -r

cron のデーモンは, /etc/cron.d 以下のファイルや /etc/crontab, /var/spool/cron 以下をチェックして変更があれば読み込まれますので, 設定変更した場合でもデーモンを再起動する必要はありません.