- ベストアンサー
cronが動かない
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は再起動しています。 どのような原因が考えられますでしょうか? 過去ログも見たのですが、それらしいものが無かったので質問させてください。 お願いします。
- みんなの回答 (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
その他の回答 (4)
- Lean
- ベストアンサー率72% (435/603)
>(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でも可)にしてみてください。
お礼
ご回答ありがとうございます。 パーミッションを600にすることにより実行できました。 助かりました。 ありがとうございます。
- lowrider_2005
- ベストアンサー率40% (1520/3748)
どこの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 お願いいたします。
- Lean
- ベストアンサー率72% (435/603)
cronからメールきていますか? 来ている場合、そのメールの内容はどうのようなものですか? また 45 18 * * * perl U9901.pl 1>/tmp/debug.log 2>&1 のようにして標準出力、標準エラー出力をファイルにリダイレクトした場合、そのファイルに何か出力されていますか? ちなみにコマンドラインからは正常に実行出来ているんですよね?
補足
ご回答ありがとうございます。 Cronからのメールは来ていません。 過去に何回か試験した時のメールは来ているんですが、 今の状態ではメールすら来ていません。 >45 18 * * * perl U9901.pl 1>/tmp/debug.log 2>&1 も何も出力されません。 なんなんでしょう?(;;) コマンドラインからの実行はできています。
- Lean
- ベストアンサー率72% (435/603)
>45 18 * * * perl U9901.pl perlコマンドがU9901.plが存在するディレクトリで実行されれば動作するだろうが、cronで実行する場合U9901.plが存在するディレクトリ上でperlコマンドが実行されるわけないのでU9901.plを絶対パス指定で指定する。 出来れば、perlも絶対パス指定でしておいた方がいいかもしれない。
補足
ご回答ありがとうございます。 上記のことは、質問する前にやってみたのですが駄目でした。 PATHとHOMEで指定しているので問題ないと思い、削除しました。
お礼
ご回答ありがとうございます。 /var/spool/cronの結果ですが、あるサイトで/var/spool/cron配下の ファイルは755に設定しろとの記載があったので、そのようにしました。 教えていただいたとおり600に設定しましたら、cronが実行できました。 色んなサイトを参考にしましたが、間違った方法を説明している所も あるみたいですね。 今後、気をつけて参照したいと思います。 (OSのデストリビューションにも依るのでしょうが・・・) ありがとうございます。 助かりました。