どちらかというとごはん派

主に仕事用のメモブログ。

【cron】LinuxでのCron作成(作成編)

2008年11月27日 15時28分18秒 | linux bash
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」を見て、
届いたメールから、エラーの内容を確認しましょう。



最新の画像もっと見る