CRONジョブを使用してURLにアクセスしますか?


80

繰り返しタスクを実行する必要のあるWebアプリケーションがあります。メッセージとアラートを送信します。既に、スクリプトページを使用して、ブラウザーに読み込まれたときにこれらのタスクを実行します。つまり、http://example.com/tasks.phpを含めました。それは私のウェブアプリケーションのすべてのページのiframeによってです。

今、私が訪問することを第一のアプローチは、ジャムのパフォーマンスへのリードは、だから、どのように私はcronジョブを作ることができる可能性があるため、cronジョブを使用するために、これを変更したいhttp://example.com/tasks.php。ただし、このCRONジョブでday。*などの出力ファイルを作成する必要はありません。

cPanelを介してCRONジョブを許可する共有ホスティングサービスでアプリケーションをホストします。

回答:


219
* * * * * wget -O - http://yoursite.com/tasks.php >/dev/null 2>&1

それはあなたのために働くはずです。wgetページをロードするスクリプトを用意するだけです。

使用-O -とは、Web要求の出力がSTDOUT(標準出力)に送信されることを意味します

追加する>/dev/nullことにより、標準出力をブラックホールにリダイレクトするように指示します。追加する2>&1ことにより、STDERR(エラー)もSTDOUTに送信されるように指示します。これにより、すべての出力がブラックホールに送信されます。(したがって、Webサイトはロードされますが、どこにもファイルを書き込むことはありません)



@AshkanMobayenKhiabaniこれらはcron構文の一部です:nncron.ru/help/EN/working/cron-format.htm
Mitch Dempsey

1
Raspbian StretchLiteの下で私のために働いた唯一の解決策。完璧!:D
that-ben 2017

4
注:URLを引用することをお勧めします。クエリが含まれている場合は、すべてを引用しないと機能しない可能性があります。
jackJoe

24

リダイレクトは必要ありません。使用するだけです。

* * * * * wget -qO /dev/null http://yoursite.com/tasks.php

1
リダイレクトが不要なのはなぜですか?
ブラッドリー洪水2014年

1
-q|--quiet Turn off Wget's output.
ディエゴ・トーレス・ミラノ2014年

1
コマンドもリダイレクトを使用しますが、他の形式では-qO / dev / nullですね。
Pavel Nazarov 2016

厳密に言えば、I / Oリダイレクトはシェルのものであるため、リダイレクトではありません
Diego Torres Milano

21

curlこれでそのまま使えますスレッドます

怠惰な人のために:

*/5 * * * * curl --request GET 'http://exemple.com/path/check.php?param1=1'

これは5分ごとに実行されます。


10

ローカルコマンドラインphp-cliを使用することもできます。

* * * * * php /local/root/path/to/tasks.php > /dev/null

それはより速く、あなたのウェブサーバーの負荷を減らします。


7

私はこのコマンドを使用します

wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1

cronタスク:

* * * * * wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1

1
これは説明が必要ですが、非常にうまく機能します。特に、私のように、URLにアンパサンドが含まれている場合はなおさらです。URLを引用符で囲むことは解決策です。なぜURLの前に/ dev / nullを置くのですか?
gfra54 2015

2
これはおそらく返信が遅いですが、遅すぎることはありません。理由は次のとおりです 。/dev/nullは、書き込まれたすべてのものを破棄する特別なファイルシステムオブジェクトです。ストリームをそのストリームにリダイレクトすることは、出力を非表示にすることを意味します。2>&1部分手段「が出力され、誤差ストリームの両方をリダイレクトします」。
アッバスアリフ2016年

さて、それはwgetのコンテンツが/ dev / nullにリダイレクトされることを意味します(したがって、基本的に削除されて無視されます)?ありがとう
Gfra54 2016

1
はい/ dev / nullに送信された出力は無視されます。
アッバスアリフ2016

2

これをパラメータ付きのURLに使用できます:

lynx -dump "http://vps-managed.com/tasks.php?code=23456"

lynxは、デフォルトですべてのシステムで使用できます。


-dumpは、ページのコンテンツをファイルにダンプします。それはおそらく望ましくない副作用です。
Wicher Visser 2016年


1

Uはこれを試すことができます:-

    wget -q -O-http://www.example.com/> / dev / null 2>&1


1

* * * * * wget --quiet https://example.com/file --output-document=/dev/null

私が見つける--quietより明確に-qし、--output-document=/dev/nullより明確に-O - > /dev/null

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.