Phusion Passengerを存続させるために、crontabで5分ごとに次のコマンドを実行しています。
*/5 * * * * wget mysite.com > /dev/null 2>&1
これを実行すると、サイトのURLでwgetが実行され、STDOUT/STDERRが/ dev/nullにルーティングされます。これをコマンドラインから実行すると、正常に動作し、ホームディレクトリにindex.htmlファイルが生成されません。
Cronから実行すると、5分ごとに新しいindex.htmlファイルが作成され、不要な大量のインデックスファイルが残ります。
Cronジョブを実行するための構文は正しくありませんか?コマンドラインからは問題なく動作しますが、cronからはホームディレクトリにindex.htmlファイルを生成します。
私は簡単な間違いを犯していると確信しています。誰か助けてくれるとありがたいです。
あなたはこのようにすることができます:
*/5 * * * * wget -O /dev/null -o /dev/null example.com
ここで-O
は、ダウンロードされたファイルをstderrの代わりに/dev/null
に送信し、-o
ログを/dev/null
に送信します。この方法では、リダイレクトはまったく必要ありません。
実際にコンテンツをダウンロードする必要がありますか、それとも200 OKを受け取る必要がありますか?サーバーにリクエストを処理させるだけでよい場合は、単に--spider
引数?
私は以下を使用します:
/5 * * * * wget -O - mysite.com > /dev/null 2>&1
-O -
オプションは、フェッチされたコンテンツがstdoutに送信されることを確認します。
コメントで「200 OK」という応答のみが必要であると言います。
それはそれらのそれらよりいくつかの追加の利点を持つソリューションを可能にしますwget -O /dev/null -o /dev/null example.com
。アイデアは、何らかの方法で出力を破棄することではなく、まったく出力を作成しないことです。
応答のみが必要であることは、ローカルファイルindex.htmlにダウンロードされるデータを最初からダウンロードする必要がないことを意味します。
HTTPプロトコルでは、コマンド「GET」を使用してドキュメントをダウンロードします。すべてを行う方法でドキュメントにアクセスするexcept実際にドキュメントをダウンロードするには、特別なコマンド「HEAD」があります。
このタスクに「GET」を使用すると、ドキュメントがダウンロードされ、ローカルで破棄されます。 「HEAD」を使用しても、必要なことが実行され、最初にドキュメントが転送されることはありません。定義により、常に「GET」と同じ結果コードを返します。
メソッドHEAD
をwget
とともに使用する構文は少し奇妙です。オプション--spider
を使用する必要があります。このコンテキストでは、必要なことだけを実行します。「GET」ではなく「HEAD」でURLにアクセスします。
オプション-q
(クワイエット)を使用して、wget
が何をするかについての詳細を出力しないようにすることができます。
これを組み合わせると、wget
はstderrに何も出力せず、ドキュメントを保存しません。
wget -q --spider 'http://example.com/'
終了コードは、リクエストが成功したかどうかを示します。
$ wget -q --spider 'http://example.com/'
$ echo $?
0
$ wget -q --spider 'http://example.com/nonexisting'
$ echo $?
8
crontab
のコマンドの場合、どちらの場合も出力がないという事実は、出力がないことをエラーの指標として再び使用できることを意味します。
コマンド例は次のように変更されます。
*/5 * * * * wget -q --spider mysite.com
これには、wget -O /dev/null -o /dev/null example.com
と同じ利点があります。追加の利点は、ログ出力およびドキュメント出力が生成されず、ローカルで生成および破棄されることです。または、大きな違いは、ドキュメントindex.html
をダウンロードして破棄しないことです。
phusion Passengerを存続させるため。
あなたの質問はこれについてである必要があります、ウェブページは言う:
高速で堅牢なWebサーバーとアプリケーションサーバー
これにはキープアライブスクリプトは必要ありません。
それ以外の場合、kasperdのソリューションは完璧です。