プロが教えるわが家の防犯対策術!

cron初心者なのでお願いいたします。

fedora5で以下のようなCronを動かそうとしています。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
HOME=/htdocs/program

45 18 * * * perl U9901.pl
rootで作成し、/var/spool/cronのrootの実行権限は755になっています。
しかし実行されません。
編集後、crondは再起動しています。
どのような原因が考えられますでしょうか?

過去ログも見たのですが、それらしいものが無かったので質問させてください。
お願いします。

A 回答 (5件)

No.3です。



>(root) BAD FILE MODE (cron/root)

crontabファイルのモードがおかしいのかも。
ls -l /var/spool/cron の結果を教えてください。

ちなみにうちのCentOSでは下記の通りです。

# ls -l /var/spool/cron/
-rw------- 1 root root 1401 Aug 11 16:19 root
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

/var/spool/cronの結果ですが、あるサイトで/var/spool/cron配下の
ファイルは755に設定しろとの記載があったので、そのようにしました。

教えていただいたとおり600に設定しましたら、cronが実行できました。

色んなサイトを参考にしましたが、間違った方法を説明している所も
あるみたいですね。
今後、気をつけて参照したいと思います。
(OSのデストリビューションにも依るのでしょうが・・・)

ありがとうございます。
助かりました。

お礼日時:2006/09/17 16:45

>(root) BAD FILE MODE (cron/root)



>/var/spool/cronのrootの実行権限は755

if ((statbuf->st_mode & 07733) != 0600) {
    log_it(fname, getpid(), "BAD FILE MODE", tabname);
    goto next_crontab;
}

パーミッションを600(644でも可)にしてみてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

パーミッションを600にすることにより実行できました。

助かりました。
ありがとうございます。

お礼日時:2006/09/17 16:46

どこのcrontabに書きましたか?


cronのログには起動の痕跡が出ていますか?

この回答への補足

ご回答ありがとうございます。

crontabはrootでcrontab -eで作成していますので
私の環境の場合、/var/spool/cron下に作成されています。

cronのログに実行の形跡がありません。

今気づいたのですがcrondを再起動したときに以下のメッセージが
出ています。
(root) BAD FILE MODE (cron/root)

何かしらでCronのファイルが悪いのでしょうか?
参考までに今現在のcrontabのファイルを載せさせていただきます。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
HOME=/aaa/htdocs/PPro
MAILTO=kaihatu

35 16 * * * /usr/local/bin/perl /aaa/htdocs/PPro/U9901.pl>/tmp/debug.log 2>&1

お願いいたします。

補足日時:2006/09/16 16:41
    • good
    • 0

cronからメールきていますか?


来ている場合、そのメールの内容はどうのようなものですか?

また

45 18 * * * perl U9901.pl 1>/tmp/debug.log 2>&1

のようにして標準出力、標準エラー出力をファイルにリダイレクトした場合、そのファイルに何か出力されていますか?

ちなみにコマンドラインからは正常に実行出来ているんですよね?

この回答への補足

ご回答ありがとうございます。

Cronからのメールは来ていません。
過去に何回か試験した時のメールは来ているんですが、
今の状態ではメールすら来ていません。

>45 18 * * * perl U9901.pl 1>/tmp/debug.log 2>&1
も何も出力されません。

なんなんでしょう?(;;)

コマンドラインからの実行はできています。

補足日時:2006/09/16 16:30
    • good
    • 0

>45 18 * * * perl U9901.pl



perlコマンドがU9901.plが存在するディレクトリで実行されれば動作するだろうが、cronで実行する場合U9901.plが存在するディレクトリ上でperlコマンドが実行されるわけないのでU9901.plを絶対パス指定で指定する。
出来れば、perlも絶対パス指定でしておいた方がいいかもしれない。

この回答への補足

ご回答ありがとうございます。

上記のことは、質問する前にやってみたのですが駄目でした。
PATHとHOMEで指定しているので問題ないと思い、削除しました。

補足日時:2006/09/15 20:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!