web-dev-qa-db-ja.com

WGETを使用してcronjobを実行するPHP

Cronを実行して、5分ごとにURLを実行しようとしました。

WGETを使用しようとしましたが、サーバーにファイルをダウンロードしたくないので、実行するだけです。

これは私が使用したものです(crontab):

*/5 * * * * wget http://www.example.com/cronit.php

URLをダウンロードするのではなく、単にURLを実行するためにwget以外に使用する他のコマンドはありますか?

43

いくつかの異なる方法でコンテンツをダウンロードしないようにwgetに指示できます。

wget --spider http://www.example.com/cronit.php

HEADリクエストを実行しますが、おそらくあなたが望むことをします

wget -O /dev/null http://www.example.com/cronit.php

出力を/ dev/null(ブラックホール)に保存します

Wgetの-qスイッチも参照してください。出力を作成できません。

おそらく、最良の選択肢は次のようになると思います。

wget -q --spider http://www.example.com/cronit.php

それは、ページをリクエストするために使用されるHTTPメソッドをチェックする特別なロジックがない限りです

95
James C
wget -O- http://www.example.com/cronit.php >> /dev/null

つまり、ファイルをstdoutに送信し、stdoutを/ dev/nullに送信します

14
Emil Vikström

PHPが失敗した場合にのみ出力を取得する場合:

php -r 'echo file_get_contents(http://www.example.com/cronit.php);'

この方法では、スクリプトが失敗した場合にのみcronjobから電子メールを受信し、phpが呼び出されたときは受信しません。

2
angelrove

次のフォーマットを試してみましたが、うまくいきました

*/5 * * * * wget --quiet -O /dev/null http://localhost/cron.php
2
Mosiur