LinuxでのCronの作成を行います。
私がはまってしまった箇所や意外とCronの設定で失敗している人が多いようなので
(多い割りにエラー解決の資料が少なくて困りました。)
そこら辺の解決になるようなことはエラー編に書いておきます。
エラーやはまってしまった方は「LinuxでのCron作成(エラー編)」を見てください。
こちらでは、作成部分を書いておきます。
◇前提条件◇
実行したいシェル・・・/usr/test/test.sh
シェルの実行ユーザ・・testuser
①まず、rootユーザになること。
su
②rootユーザで、testuserのcronを作成する。
◇理由◇
rootユーザで、rootのcronにtestuserで実行するように設定しても
上手くいかないことがある。
testuserで作成するときには、cronの作成権限を渡してあげる必要があるので、
ちょっとめんどい。
まずは、viでcron編集をするように以下のコマンドを投げる
EDITOR=vi; export EDITOR
デフォルトのエディターをviにするよ。ってこと。
意外と重要です。これをしないと変なエディターが起動して、何も出来ません。
それでは、以下のコマンドで、実際に作成する。
crontab -u testuser -e
(-uはrootでどのユーザのcronを作成するかを宣言し、-eは作成モードっていうこと。ちなみに-lは確認モード。)
③viで書き込む
viで開いたら、「i」を押下して「挿入モード」にする。
挿入モードになったら、以下をコピペする。
-------------------------------------------------------------------------------------------------
SHELL=/bin/bash
PATH=/home/testuser/bin
MAILTO=testuser
HOME=/
# run-parts
0 16 * * * /usr/test/test.sh
-------------------------------------------------------------------------------------------------
コピペしたら「ESCキー」を押下して「ZZ」(保存して終了)を押下して終了します。
④確認してみましょう
/var/spool/cron配下にtestuserというファイルが出来るので
catして、上記と同様である旨を確認する。
パーミッションは500
cronのログファイル(/var/log/cron)をcatしてみて
Nov 26 15:21:01 server crond[6417]: (testuser) RELOAD (cron/testuser)
こんなようなのがでてればOKです。Cronさんが設定ファイルをリロードしてくれました。
でてなければCronが起動していない可能性があります。ので起動させておきましょう。
再起動:service crond restart
起動 :service crond start
これで、私は「0 16 * * *」で設定したので、16時に起動されるのを待って、確認します。
起動時刻になっても起動しない場合は、「/var/spool/mail/testuser」を見て、
届いたメールから、エラーの内容を確認しましょう。
私がはまってしまった箇所や意外とCronの設定で失敗している人が多いようなので
(多い割りにエラー解決の資料が少なくて困りました。)
そこら辺の解決になるようなことはエラー編に書いておきます。
エラーやはまってしまった方は「LinuxでのCron作成(エラー編)」を見てください。
こちらでは、作成部分を書いておきます。
◇前提条件◇
実行したいシェル・・・/usr/test/test.sh
シェルの実行ユーザ・・testuser
①まず、rootユーザになること。
su
②rootユーザで、testuserのcronを作成する。
◇理由◇
rootユーザで、rootのcronにtestuserで実行するように設定しても
上手くいかないことがある。
testuserで作成するときには、cronの作成権限を渡してあげる必要があるので、
ちょっとめんどい。
まずは、viでcron編集をするように以下のコマンドを投げる
EDITOR=vi; export EDITOR
デフォルトのエディターをviにするよ。ってこと。
意外と重要です。これをしないと変なエディターが起動して、何も出来ません。
それでは、以下のコマンドで、実際に作成する。
crontab -u testuser -e
(-uはrootでどのユーザのcronを作成するかを宣言し、-eは作成モードっていうこと。ちなみに-lは確認モード。)
③viで書き込む
viで開いたら、「i」を押下して「挿入モード」にする。
挿入モードになったら、以下をコピペする。
-------------------------------------------------------------------------------------------------
SHELL=/bin/bash
PATH=/home/testuser/bin
MAILTO=testuser
HOME=/
# run-parts
0 16 * * * /usr/test/test.sh
-------------------------------------------------------------------------------------------------
コピペしたら「ESCキー」を押下して「ZZ」(保存して終了)を押下して終了します。
④確認してみましょう
/var/spool/cron配下にtestuserというファイルが出来るので
catして、上記と同様である旨を確認する。
パーミッションは500
cronのログファイル(/var/log/cron)をcatしてみて
Nov 26 15:21:01 server crond[6417]: (testuser) RELOAD (cron/testuser)
こんなようなのがでてればOKです。Cronさんが設定ファイルをリロードしてくれました。
でてなければCronが起動していない可能性があります。ので起動させておきましょう。
再起動:service crond restart
起動 :service crond start
これで、私は「0 16 * * *」で設定したので、16時に起動されるのを待って、確認します。
起動時刻になっても起動しない場合は、「/var/spool/mail/testuser」を見て、
届いたメールから、エラーの内容を確認しましょう。