解決済みの質問
さくらインターネットでcron設定を使って月末になると起動するphpを読み込もうとしたいのですが、どうやっても上手くいきません。
いろいろと参考になるサイトはあるのですが、動かない理由がわからないのでどなたか教えてください。
まず、cron設定で設定しているシェルのファイルが置いてあるパスに間違いはありません。
次にシェルファイルに書いてあるコードは以下です。
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
cd /home/自分のID/www/自分で作ったフォルダ/; ./自分で作ったフォルダ/phpファイル
という風に書いてあります。
ところが、時間になるとこれが実行されず、
サーバーよりエラーメールが届きます。
[not found]と一言。
…最初、シェルファイルの階層が間違っているかと思ったのですが、
どう見てもあってますし…中身が問題なのかなぁ、と考えます。
何かわかれば、是非教えてください。
お願いします。
投稿日時 - 2007-10-30 22:36:19
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
cd /home/自分のID/www/自分で作ったフォルダ/
php phpファイル
上記のtypoじゃないすかね。
命令終了はセミコロンじゃないです。
cronでphpファイルを起動させるだけなら別に.shファイル使わなくても
直接crontabにphp起動コードを書けば良いと思いますよ。
0 0 1 * * php /home/自分のID/www/自分で作ったフォルダ/phpファイル
>PATH
php実体へのパスが通っていないパターンを考慮すれば別に記述があっても不自然ではないと思いますが・・・
投稿日時 - 2007-10-31 10:40:41
お礼
できました!wp_さん!!
直接、ここで書けばよかったんですね!
てっきりシェルコマンドを使わないとできないものだ、と
認識していました。
もう少し勉強して知識を深めていきますね。
投稿日時 - 2007-10-31 17:21:06
2人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(4件中 1~4件目)
なんか盛り上がってますね。
phpコマンドが通る場合は
#!/bin/sh
php /home/...../phpファイル
で良いと思います。
しかし、CLIインストールされていない場合もあると思います。
インターネット経由でwgetやcurl等でたたくという方法もありますよ
wget http://localhost/ファイル名
参考まで。
投稿日時 - 2007-10-31 14:30:27
お礼
ありがとうございます!
いろいろ皆さんの意見を見ていて考えていたらできました!!
投稿日時 - 2007-10-31 17:21:55
>[not found]と一言。
当たり前。
>cd /home/自分のID/www/自分で作ったフォルダ/; ./自分で作ったフォルダ/phpファイル
まずなんで「cd」(ディレクトリ移動)?
しかもディレクトリですらない「phpファイル」にディレクトリ移動ができると思いますか?
>PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
しかもこの無駄なパス通しはなんのため?
シェルスクリプト以前にコマンドの使い方を勉強すべき。
投稿日時 - 2007-10-30 23:10:38
お礼
ありがとうございます。
サクラインターネットに関する記事を参考にしながら
ソースを書いていたのでそこから探っていたんです。
しかし、いろいろ指摘を受けてわかりました。
投稿日時 - 2007-10-31 17:19:54