重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

さくらレンタルサーバーのスタンダードを借り、
cakephpのWebアプリケーションを勉強している者です。

cronに

#!/bin/sh
curl http://(ユーザ名).sakura.ne.jp/xxx/hogehoge

のようなシェルを設定したのですが、

curl: not found
と出力され実行できません。

telnetからは実行されたのでパスは問題ないと思います。
さくらサーバーではcurlは実行できないのでしょうか?
また、どうすれば上記のようなシェルは実行できるのでしょうか?

よろしくお願いします。

A 回答 (4件)

>curlはフルパスではありません。



でしたらフルパス指定にして様子を見る。
とされてはいかがでしょう。

フルパスで書かないとcronでなぜ失敗するのか、telnet(シェルからの実行)ではなぜ問題ないのか…
については#3で回答されていますが…。

cronで実行されるシェルスクリプト中で環境変数をファイルに書き出してみるとPATHが未設定になっていることが判るかと。
# printenv > /tmp/env とか。

crontab -e
でcronの設定を行っているのであれば、一緒に環境変数なんかも設定できるかも知れませんが。
"crontab PATH"で検索してください。
# man 5 crontab でも見られるでしょうけど。
    • good
    • 0
この回答へのお礼

わざわざ補足説明までしてくださってありがとうございます。
正常に動作することを確認することが出来ました。

また、3回も回答してくださってありがとうございます。
わからないことだらけで、
Wr5さんの補足説明がが無かったら解決できませんでした、
本当に助かりました。

お礼日時:2011/05/28 09:37

単にパスが通ってないだけだと思います。


シェルだと、~/.profileあたりでPATHを設定していますよね?
cronは.profileを読んではくれないので、crontab内でPATHを指定(man crontab)するなり、
フルパスでコマンドを実行するなりする必要があります。

不便だとか、不親切だとか思うかもしれませんが、
そもそもシェルと言っても、sh,csh,ksh,bash,etc.etc.と色々あり、
シェルによって環境変数の設定方法も違うのですから、
いちいちcronがそれぞれに対応するのも変な話でしょ?
    • good
    • 0
この回答へのお礼

御礼が遅くなってしまい大変失礼いたしました。

/usr/local/bin/curl http://(ユーザ名).sakura.ne.jp/xxx/hogehoge

とすることで対応できました。
PATH指定のファイルなど知らないことが多かったので勉強になりました。
ありがとうございます。

お礼日時:2011/05/28 09:31

>cronにはフルパスで記述しており、



ということは、
>curl http://(ユーザ名).sakura.ne.jp/xxx/hogehoge
の"curl"もフルパスで記述されているのですよね?
であれば、
>curl: not found
という出力はないかと思われますが…

そうなると原因不明ですかね……

この回答への補足

curlはフルパスではありません。

telnetからだとcurlのみで実行され、
想定通りの処理をしてくれます・・・

補足日時:2011/05/24 13:50
    • good
    • 0

>telnetからは実行されたのでパスは問題ないと思います。



では、cronからはパスは通っているのでしょうか?
ということで、フルパスで記述してはどうですか?
# あとは…そのシェルの実行ユーザも気にする必要があるかも知れませんけど。

この回答への補足

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

>では、cronからはパスは通っているのでしょうか?
>ということで、フルパスで記述してはどうですか?

説明不足で申し訳ございません。
cronにはフルパスで記述しており、

sh cronに記述しているパス

のコマンドでtelnetで実行できたので、問題ないようだと思いました。

># あとは…そのシェルの実行ユーザも気にする必要があるかも知れませんけど。
パーミッションは755と設定しており、すべてのユーザで実行できるように設定しております。
また文字コードはUTF-8、改行は\nと設定し、
転送モードはアスキーに設定してアップロードしました。

補足日時:2011/05/24 11:13
    • good
    • 0

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