プロが教える店舗&オフィスのセキュリティ対策術

FreeBSD にて、perl プログラムを定期的に動かしたい
んです。( はっきり言えばメールの送受信をしたい )
これは当然、crontab を使うかと思うのですが、

* * * * * /home/public_html/cgi/pop3_Soushin.pl

・・・のように、crontbab -e でスクリプトの絶対パス
を書いて、成功するのをじーっと待っていると、

/home/public_html/cgi/pop3_Soushin.pl
: not found

・・・という、やるせないメールが飛んでくるのです。
一体どうしてでしょうか・・・パス、大文字、小文字は
何度も確かめたですが、間違いはないようです。

初心者の単純なミスなのかもしれませんが、解決策を
ご存知の方、どうかよろしくお願いします。m(__)m

A 回答 (6件)

念のためpop3_Soushin.plの置いてあるディレクトリに移動してpwdコマンドを実行してみて下さい。


表向きと実際のディレクトリ構成が違う場合もありますので…。
もし違っていたらそちらのパスに書き換えましょう。

この回答への補足

回答ありがとうございます。
さっそく調べてみましたが、やはり間違いがないよう
です。
もう、しばらく悩んでみます。。。

補足日時:2001/09/28 14:33
    • good
    • 0
この回答へのお礼

この件、うんうんやってたらなんとか解決しました。
ありがとうございます。
cron の 設定をテキストファイルでアップしてから、
シェル上で、crontab my_contab のように設定してたの
ですが、それがどうもいけなかったようです。
ファイルを転送したら、まずはそのファイルに対し、
一度は vi で入っておいて、更新するといいようです。
ご面倒をおかけしました。

お礼日時:2001/10/01 15:00

答えになっているかどうかはわかりませんが、cronを使った場合は、実際に同じコマンドを打つ場合と異なる点として、環境変数がセットされないということがあります。

この場合は、/home/public_html/cgi/pop3_Soushin.pl ということで、絶対パスなので、ここについては問題ないと思いますが、スクリプトの中身は、絶対パスになっているでしょうか?もしくは、環境変数が(たとえば、PATH)がきちんとセットとされているでしょうか?
もしくは、
/usr/local/bin/perl /home/public_html/cgi/pop3_Soushin.pl
のような記述にしてみたらどうでしょうか?(あまり関係ないと思うけど・・・)
    • good
    • 0
この回答へのお礼

この件、うんうんやってたらなんとか解決しました。
ありがとうございます。
cron の 設定をテキストファイルでアップしてから、
シェル上で、crontab my_contab のように設定してたの
ですが、それがどうもいけなかったようです。
ファイルを転送したら、まずはそのファイルに対し、
一度は vi で入っておいて、更新するといいようです。
ご面倒をおかけしました。

お礼日時:2001/10/01 14:59

ちょっと気になったのですが、



>/home/public_html/cgi/pop3_Soushin.pl
>: not found

は2行に分かれて出力されたのでしょうか?
また、エラーメッセージはこれで全文ですか?
補足お願いします。
    • good
    • 0
この回答へのお礼

この件、うんうんやってたらなんとか解決しました。
ありがとうございます。
エラーメッセージはそれで全文です。2行です。
cron の 設定をテキストファイルでアップしてから、
シェル上で、crontab my_contab のように設定してたの
ですが、それがどうもいけなかったようです。
ファイルを転送したら、まずはそのファイルに対し、
一度は vi で入っておいて、更新するといいようです。
ご面倒をおかけしました。

お礼日時:2001/10/01 13:42

crontbab -e を設定したユーザーで、実際に


/home/public_html/cgi/pop3_Soushin.pl
を実行することが出来ますか?
pop3_Soushin.pl自体のパーミッションだけでなく、
上位のディレクトリのパーミッションが原因の可能性もあります。
    • good
    • 0
この回答へのお礼

この件、うんうんやってたらなんとか解決しました。
ありがとうございます。
cron の 設定をテキストファイルでアップしてから、
シェル上で、crontab my_contab のように設定してたの
ですが、それがどうもいけなかったようです。
ファイルを転送したら、まずはそのファイルに対し、
一度は vi で入っておいて、更新するといいようです。
ご面倒をおかけしました。

お礼日時:2001/10/01 13:41

/home/public_html/cgi/pop3_Soushin.pl


の1行目に記述してある perl の絶対パスが
違っていたりしませんか??

#!/usr/bin/perl
とか
#!/usr/local/bin/perl
になっている部分を確認してみてください.

この回答への補足

この件、うんうんやってたらなんとか解決しました。
ありがとうございます。
cron の 設定をテキストファイルでアップしてから、
シェル上で、crontab my_contab のように設定してたの
ですが、それがどうもいけなかったようです。
ファイルを転送したら、まずはそのファイルに対し、
一度は vi で入っておいて、更新するといいようです。
ご面倒をおかけしました。

補足日時:2001/10/01 15:02
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
間違いはありません。
ほんとにふに落ちないので、サーバー業者にやいのやいの
と聞いてみることにします。

お礼日時:2001/09/28 14:44

> 一体どうしてでしょうか・・・パス、大文字、小文字は


> 何度も確かめたですが、間違いはないようです。

を信じるならば、その pop3_Soushin.pl というファイルに実行権限が
ついていないということが原因かと思います。

cron は、その登録したユーザの権限で実行されますので、例えば、
naru というユーザで crontab -e で設定をしたのであれば、その
naru というユーザに対する実行権限が必要です。

この回答への補足

実行権限はあってるとおもうのです。。。
一応、サーバーの業者に今問い合わせてみます。
回答ありがとうございました。

補足日時:2001/09/28 14:36
    • good
    • 0
この回答へのお礼

この件、うんうんやってたらなんとか解決しました。
ありがとうございます。
cron の 設定をテキストファイルでアップしてから、
シェル上で、crontab my_contab のように設定してたの
ですが、それがどうもいけなかったようです。
ファイルを転送したら、まずはそのファイルに対し、
一度は vi で入っておいて、更新するといいようです。
ご面倒をおかけしました。

お礼日時:2001/10/01 15:01

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