2012-02-15 5 views
1

これは簡単な答えかもしれないので、私はかなりcronジョブに慣れていますが、ここで何がうまくいかないのか分かりません。私はファイルの名前を変更するPHPスクリプトを実行するためにcronジョブを使用しています。私はPHPファイルを読み込むとき、それは何をすべきかを行うので、スクリプトが動作することを知っています。しかし、cronジョブは毎回エラーメールを送信します。ここで私が実行しているスクリプトは次のとおりです。機能しているスクリプトでエラーが出るcronジョブ

<?php 
rename("login/pools.php", "login/poolsbk.php"); 
?> 

私はcronコマンドを使用しています:ここ

を/home/dollarca/public_html/renamescript1.phpと-q PHPはそれが生成するエラーです。警告:名前の変更(login/pools.php、login/poolsbk.php):/home/dollarca/public_html/renamescript1.phpの2行目のファイルやディレクトリがありません

エラーが出ていますディレクトリ内のファイルではなくスクリプト内のファイルの名前を変更しようとしています。間違ったcronコマンドを使用していますか?

+0

は 'login'ディレクトリは' public_html'ディレクトリのサブですか? –

+0

名前を変更したいファイルの絶対パスは何ですか? 'login/pools.php'の代わりに'/login/pools.php'の名前を実際に変更したいのですか? –

答えて

3

cronがジョブを実行するときの作業ディレクトリは、手動でスクリプトを実行している作業ディレクトリとは異なります。

簡単な解決法は、関数内の完全なパスを使用することです。

rename("/home/dollarca/public_html/login/pools.php", "/home/dollarca/public_html/login/poolsbk.php"); 
+0

論理的に聞こえる、私は今試してみる – user1206214

+0

それはうまく動作していないようだが、もうエラーは出ない。私のサーバーの時間はちょうど私自身の時間から離れているかもしれません。私は今から1時間の時間を設定して、もう一度試してみよう。 – user1206214

+0

それを修正した – user1206214

2

私は手動でPHPスクリプトを実行した場合、あなたはディレクトリ/home/dollarca/public_htmlからそれを行うとします。 cronが実行すると、それは実行されません。絶対ファイルパスを使用するか何をすべきである(すなわち、代わりにlogin/pools.php/home/dollarca/public_html/login/pools.php)または最初にそのディレクトリに変更するchdir()を使用します。

<?php 
chdir("/home/dollarca/public_html"); 
rename("login/pools.php", "login/poolsbk.php"); 
?> 
関連する問題