2008/04/25

cron

自動的にある時間ごとに実行していて欲しいプログラムがある。
このとき一定時間ごとに動くようにシェルを書くというのも1つの手だが、どんなきっかけでプロセスが終わってしまうとも限らない。
そういうのをターミナルから実行するのは、嬉しくない。

こういうときはcronを使えばいい。
時間間隔と実行して欲しいシェルを指定すると、あとは勝手に実行してくれる。
デーモンとして動いてくれるので、予後を気にする必要がない。

設定は非常に簡単。

$ crontab -e

と打てばいい。
こうすると、デフォルトのエディタで、設定ファイルが立ち上がる。
そこに例えば、

SHELL=/bin/bash
DIR=/home/hoge

0 1 * * * $DIR/hoge.sh

とか書いておく。
この例だと、1時間に1回、/home/hoge以下のhoge.shを実行してくれる。

デフォルトのエディタはFC5だとviだが、これはexportで指定できる。

export EDITOR=emacs

というのを.bashrcに足しておけばいい。

それと自分の環境では、シェルを実行するたびにいちいちメールが来るようになっていた。
これを回避するには、crontabに、

MAILTO=""

という1行を書いておけばいい。

ちなみに実行するhoge.shに、ROOTが入っている場合、hoge.shに環境変数の追加が必要になる。
自分の環境では、ROOTSYSとROOTDIR、PATH、LD_LIBRARYを付け加えると動いた。
それとファイルの場所はフルパスで指定する必要がある。

0 件のコメント: