2

重複の可能性:
PHP 用の Ubuntu での Cron ジョブ

私はubuntuサーバーを実行しており、毎日phpスクリプトを実行したいと考えていました。私はいくつかの調査を行い、cron がこれを行うための最良の方法であることを発見しましたが、これが私が行き詰まった場所です。cron に関するインターネット上の多くの情報は、追跡して理解するのが非常に困難です。

そこで、単純な php スクリプトを 1 日 1 回実行したいと思いました。テスト用に作成したスクリプトは、データベースからレコードを削除するだけですが、実際のスクリプトはさらに多くのことを行います。

Web ホスト サービスから提供される plesk を使用してタスクを設定しようとしましたが、必要なときに実行されないようでした。分には 1、時間には 22、日には *、週には *、* にはこれは毎日 22:01 に実行されると考えられていました。

サーバーにディレクトリがあります:cron.hourly cron.daily cron.weekly cron.monthly

そこにファイルをダンプでき、たとえば毎日実行されると思いましたが、phpスクリプトを正しく呼び出すにはcronスクリプトを作成する必要があると思いますか?

cron.daily フォルダーにファイルを配置する方法を実行するとしたら、どうすればよいでしょうか?

また、php 側で必要な手順があれば教えてください。

お時間をいただきありがとうございます。

4

2 に答える 2

9

cron ジョブをセットアップするには、いくつかの方法があります。コンソールから実行できるシェルアクセスを取得しcrontab -e、そこでジョブを定義できると仮定すると、つまり次のようになります。

1 22 * * * command

command毎日22:01に(それが何であれ)トリガーされます(1代わりに分を設定する理由はわかりません0)。そこから PHP スクリプトを起動するphp-cliには、 をインストールしてから、その方法で起動する必要があります。

1 22 * * * <path>/php -q script.php

また、ここで bash スクリプトを呼び出して、パスなどのすべてのものをセットアップしてから、bash から php スクリプトを呼び出すこともできます。cron 用に長すぎるコマンド ラインを作成するよりも、この方法で実行する方が簡単な場合があります。また、後で更新する方が簡単です。chmod a+x script.phpまた、実行ビット ( ) を設定し、シェルのシバンを追加することで、php スクリプトを bash 実行可能なスクリプトに変えることができます。

#!/usr/bin/php -q
<?php
   ...

スクリプトの依存関係が多すぎて Web 経由で呼び出したい場合は、 を使用wgetしてブラウザーを模倣できます。だからあなたは次のようにcommandなります:

/usr/bin/wget --delete-after --quiet --spider <URL-TO-YOUR-SCRIPT>

wget のマニュアルは、 またはman wgetからアクセスできます。 またはこの Web サイトにあります。別の方法として、パッケージのツールを使用することもできますが、wget はスタンドアロン ツールですが、perl が必要です。自己署名証明書で HTTPS を使用する場合は、呼び出し引数に追加します。また、cron スクリプトへの Web アクセスを localhost/127.0.0.1に設定して制限することもできます。wget -hHEADperl-www--no-check-certificate.htaccess

于 2012-08-31T12:45:50.457 に答える
3

毎分:

* * * * * /path/script.php

24 時間ごと (深夜ごと):

0 0 * * * /path/script.php

crontab の仕組みについては、このリファレンスを参照してください: http://adminschoice.com/crontab-quick-reference、および cron jobx を構築するためのこの便利なツール: http://www.htmlbasix.com/crontab.shtml

于 2012-08-31T12:46:59.573 に答える