• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:crontabでのシェル自動実行がNG)

crontabでのシェル自動実行がNG

このQ&Aのポイント
  • Linux(Red Hat Enterprise Linux ES release 3 Apache/2.0.46)上でcrontabを設定しようとしていますが、シェルがこけてしまいます。
  • シェルスクリプトは正常に動作し、cronも指定した時間に稼働していますが、cron内でシェルがエラーとなります。
  • エラーメッセージからは具体的な解決方法が分かりません。解決のヒントを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

rootで実行しているのに実行できないなら、やはりmknmzへのパスが通ってないのだと思います。 command not found と出るのは、パスが通ってない場合に出ますから。 実行権限がなくてこけるときはPermission Deniedと出るはずです。 シェルのmknmzをフルパスで書いてみたらどうなりますか?

longstop
質問者

お礼

何度もありがとうございます。mknmzをフルパス(/usr/local/bin/mknmz)で記入したら、見事にシェルが動きました。 パスを通すことも研究してみます。ありがとうございます。

その他の回答 (2)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1です。 > mknmzコマンドはrootじゃないと実行できないからだめなのかなーと思いますが・・・ とのことですが、このcrontabはrootでログインして設定しているのではないのですか? crontabはユーザごとに設定します。 (/etc/cron.allowや/etc/cron.denyが設定されていると、許可されたユーザだけが設定できますが) そして、そのユーザの権限で、指定したコマンドが実効されます。 rootで動かしたいのであれば、rootでログインしてcrontabを設定する必要があります。 あと蛇足かもしれませんが、mknmzへのパスは通ってますか?

longstop
質問者

お礼

>crontabはrootでログインして設定しているのではないのですか? そのとおりです。rootでログインしてcrontabを設定しています。 mknmzコマンドはrootでないと実行できないので、何とかしたいのですが。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

crontabの書式は、 分 時間 日 月 曜日 コマンド名 です。 > # crontab -l > 50 11 * * * root /home/foo/scripts/autoindex.sh これだと、「root /home/foo/scripts/autoindex.sh」というコマンドを実行するという意味になっていまい、rootというコマンドはないので、 >/bin/sh: line 1: root: command not found と出ているのだと思います。

参考URL:
http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html
longstop
質問者

お礼

ham_kamoさん、さっそくのご回答ありがとうございます。 > # crontab -l > 40 13 * * * /home/foo/scripts/autoindex.sh 今度はrootを外してみましたが、またもNGでした。 mknmz: command not foundInterrupt mknmzコマンドはrootじゃないと実行できないからだめなのかなーと思いますが・・・

関連するQ&A