Web サーバー (HTTP) を継続的に監視し、新しく追加されたファイルを最小遅延 (理想的には 1 分未満の遅延) でダウンロードする最適な方法は何ですか?
答え1
監視
まず、モニタリングにはナギオスコアソースは無料ですが、GUI が必要な場合は料金を支払う必要がありますが、その分支払う価値はあります。
使用することもできますアイシングア、広報、またはあなたにぴったりのものを選んでください。
yum
Collectd(Collection Daemon)も、 RHEL派生版またはapt-get
Debianベースのバージョンで使用できる無料の監視ツールです。この紙Collectd を使用する場合。
タスクは x < 1 分ごとに実行されます
質問の2番目の部分、つまりx回ごとに1分未満のジョブを実行する場合、ご存知のとおりCronjobsは使用できませんが、次のようなトリックを使用できます。ジル この質問ではやりたいことをやる。
必要なスクリプトを用意して、必要に応じて起動時も含めて永久に実行する方がよいでしょう。次のような簡単な構文を使用できます。
while true; do yourJob; sleep someTime; done
あるいは、必要に応じて、さらに複雑なスクリプトを使用することもできます。
コマンドを使用することもできますwatch
。例:
watch -n1 command
command
それは毎秒、永遠にあなたを動かし続けます。
ご想像のとおり、watch
複雑なスクリプトではなく、1 分未満の x 回ごとに単純なスクリプトを実行する必要がある場合は、 でシェル スクリプトを実行することもできます。
選択はあなた次第です。
答え2
これはいくつかの要因に依存します。
Web サーバーを制御できる場合、最も簡単な方法は、最後のチェックまたはダウンロード以降に変更されたファイルの数を提供する (RESTful?) サービスをインストールすることです。これにより、クライアントとサーバーの両方でデータ転送と負荷が最小限に抑えられます。サーバー上のファイルのアップロード/変更を、ファイル システムに依存せずにアップロード スクリプトなどで直接追跡できる場合は、さらに効果的です。
後者の場合、 などのファイル監視ソリューションを検討しますfamd
。
サーバーを制御できない場合は、ダウンロードする前に修正を取得する必要があります。最も簡単な方法は、ウェブミラーリングw3mir などのユーティリティは、ETag および Last-Modified / If-Modified-Since ヘッダーのチェック/提供をすでに処理しているため、このユーティリティは不要です。つまり、呼び出し回数が少なくなり、ユーティリティをより頻繁に実行できるようになります。
に関してどうやってユーティリティを実行するには、それがどこで実行されるかによって異なります。Unix マシンで cron ジョブを使用することも、ループで実行することもできます。
ただし、前者を実行する場合は、前のインスタンスが終了する前にミラーリング プロセスが開始されないように、何らかのセマフォをインストールすることをお勧めします。これは、ロック ファイルを作成するだけの簡単な作業です。
if [ -r /tmp/mirror.lock ]; then
echo "lock file found" | logger -t webmirror
exit 0
fi
touch /tmp/mirror.lock
...whatever...
rm /tmp/mirror.lock
ただし、スクリプトを強制終了する可能性のあるシグナルもすべて実行する必要がありますcatch
。そうしないと、一時的なエラーが発生した場合にロック ファイルがそこに残され、エラーが解決された後でもそれ以降のすべてのインスタンスが実行されなくなる可能性があります。
または、ロック ファイルが適切な量より古くないことを確認して、古い場合は削除するか、スクリプトのインスタンスがいくつ見つかったかps
(通常は 1 つ、現在のインスタンス。それ以上の場合は、現在のインスタンスを中止したほうがよいでしょう) を確認して、ロック ファイルを完全に使用しないようにすることもできます。
答え3
cron ジョブで簡単なコマンドを実行することもできますcurl
が、Web 監視機能を備えた監視ソリューションの使用を開始することをお勧めします。無料の監視ソリューションはたくさんあります。Google で「オープン ソース Web 監視ソリューション」と検索するだけで、たくさんのソリューションが見つかります。
答え4
FarazXが言ったように、Nagiosのような監視ソリューションはいくつかあります。パンドラ、...しかし、これらのツールはあなたの目的には大きすぎるかもしれません。おそらくアップタイムロボットあなたにとっては十分です。
提案を確認して最適なものを選択してください。ただし、オプションが多い監視ソリューションの方が、環境の可能性が広がることを覚えておいてください。