cronの設定

概要

cronは決められた時間にコマンドを自動実行する。

導入

最近のディストリビューションでは、cronは標準でインストールされている。
cronが動いているかどうかは、以下のコマンドで確認する。

# ps aux | grep cron

動作していれば

    927       ?        S    0:00    crond
   9263    pts/0    R    0:00    grep    cron

のように表示される。
動作していない場合は

# /etc/rc.d/init.d/crond start

で起動する。

設定ファイル

デフォルトの設定ファイルは /etc/crontab
内容は以下のとおり

SHELL=/bin/sh
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 

SHELL
  強制的にここで定義されたシェルを使う。

PATH

   PATHの設定~


MAILTO
  cronの実行結果をここで指定されたユーザ宛にメールで送る。
  ユーザ名を空にするとメールは送信しない。
  MAILTO自体の記述をしない場合はcrontabの所有者にメールを送る。

HOME

   cronを実行する際のホームディレクトリ。~


#run-parts 以下がcronを実行するタスクの記述。

設定の追加

デフォルトで設定されているディレクトリを利用して設定を追加することは可能だが、
この場合、crontabの所有者であるrootでしか実行できない。
ユーザ毎に設定するには以下のコマンドで設定を行う。

cronの設定

#  crontab  -e

内容確認

#  crontab  -l

設定削除

#  crontab  -r

crontab -e を実行すると、エディタ(vi)が起動するのでここで設定を記述する。
書式は

   分    時    日    月    曜日    コマンド

  分は0〜59、時は0〜23、日は1〜31、月は1〜12、曜日は0〜7までの数値を設定する。
  曜日は0と7が日曜日。
  ”*”にすると全てが有効になる。

設定変更後、デーモンの再起動は必要ない。

設定例

例えば、/root/test という名前でシェルスクリプトファイルを作成したとする。
内容は以下のとおり。

#! /usr/sh
cp  /root/abcd  /root/efgh 

これを実行すると、/root/abcd を /root/efgh という名前で複製する。

このスクリプトを1時間毎に実行するようcronに設定を追加する場合

#  crontab  -e

でエディタが起動するが、はじめは何も記述されていない。
ここに以下1行を記述する。

0  *  *  *  *  /root/test

:wqで保存&終了する。
この設定にすると、毎時0分になると/root/test が実行される。

また、10分毎に実行したい場合は

   */10  *  *  *  *  /root/test

とする。

ログの確認

ログは /var/log/cron に保存される。

   #  cat  /var/log/cron

でログが確認できる。


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-14 (金) 00:00:00 (3442d)