0

数分ごとに実行する必要のある2つのphpスクリプトがありますhttp://myfakesite.com/myphpfile.phpが、ブラウザーに入力して手動でトリガーできるため、php自体は問題ありません。どちらも正常に機能します。

cronの経験はあまりありませんが、crontabファイル(VPNでParallels Power Panelを使用しています)を見つけました。すでに実行するジョブがあります。cron.hourly、daily、weekly、monthlyの一部です。メールアドレスをMAILTOフィールドに追加すると、cron.hourlyはディレクトリではないというメッセージが表示されます(現在は空ですが)。

また、次のように、このファイルに自分の2つのジョブを追加しました。

*/1 * * * * wget http://myfakesite.com/script1.php
*/5 * * * * wget http://myfakesite.com/script2.php

これらのどちらも呼び出されることはありません。phpスクリプトには、スクリプトが呼び出されたら電子メールを送信する行もあります。これにより、スクリプトが機能していることがわかり、cronjobを介して電子メールを受信したことはありません。サーバーにSSHで接続し、wgetを使用すると、phpが機能し、確認のためにメールで通知されます。

私も試しました

*/1 * * * * php http://myfakesite.com/script1.php

*/1 * * * * wget -O /dev/null http://myfakesite.com/script1.php>/dev/null 2>&1

運がない。crontabファイルのMAILTOは、スクリプトの実行に問題があったことを示すメッセージを送信しませんが、明らかにそれを実行していません。

誰か助けてもらえますか?次に何をしようかわからない。

編集:「ディレクトリではありません」エラーは、破損したcrontabファイルに起因する可能性があるという情報が見つかりました。そこで、ダウンロードして情報を新しいファイルにコピーしてアップロードしました。「ディレクトリではありません」というエラーが消えました...完全に。cron.myfakefolderのように存在しないことがわかっているフォルダを探すように指示しても、Not a directory: /etc/cron.myfakefolderメールは届きません。新しいcrontabファイルを元のファイルに置き換えましたが、cronjobからのフィードバックがまだ得られません。

編集2:dAm2Kとprodigitalsonが示唆したように、私はwgetとphpの両方への絶対パスを使用してみました。どちらも機能していません。実際に存在することを確認するために、usr / bin/wgetとusr/bin/phpの場所を再確認しました。var / log/cronとvar/log / messagesもチェックしましたが、どちらにも次のものが含まれていました。

2002「ダウンロード」操作を実行できません:要求されたファイル「/ var / log/cron」は一度に送信するには大きすぎます。512KB単位でファイルをリクエストしてみてください

これで何が起こっているのか分かりません。編集1で述べたように、意図的に誤った場所を追加しても、エラーメールを受信しなくなりました。これはログファイルのエラーに関連していますか?

また、crondが実行されており、「システムサービス」と「システムプロセス」の両方に従って実行されていることを確認しました。

4

2 に答える 2

1

cronで実行可能ファイルへの絶対パスを使用してみてください:例

*/5 * * * * /usr/bin/wget 'http://myfakesite.com/script1.php'

それ以外の

*/5 * * * * wget http://myfakesite.com/script1.php

/var/log/messages または /var/log/syslog ログ ファイルを再確認して、cron 実行の詳細と、システム全般に何が起こるかを確認してください。

于 2012-05-29T15:11:44.470 に答える
1

スクリプトが同じサーバー上にある場合は、次のコマンドで実行してみてくださいphp -q

*/1 * * * * php -q pathToTheFile/script1.php
于 2012-05-29T15:44:48.700 に答える