ホワイトリストに登録されたサーバーから少量のデータを取得する最も速い方法は何ですか?

ホワイトリストに登録されたサーバーから少量のデータを取得する最も速い方法は何ですか?

さまざまなシステム向けにさまざまなプログラムを構築するサーバーが多数あります。

ビルドが完了すると、単一のファイルにアーカイブされ、圧縮されて、md5sumそのファイルの が作成されます。 1 つのサーバーで複数の異なるバージョンがビルドされる場合があり、その結果、複数のアーカイブ ファイルと archive.md5 ファイルが作成されます。

最後に、他のさまざまなサーバー上でスクリプトが実行され、md5sum各ファイルの をチェックし、それらをローカルの と比較しmd5sum、異なる場合は更新されたビルドをダウンロードして解凍します。

現在、チェックは各ビルドの md5 の比較に続いてmd5sum行われます。scp [email protected] /path/to/builds/*.md5 .

スクリプトの実行時間の 99% は (数秒しかかからないにもかかわらず) ですscp。私は、そのデータ転送を可能な限り最適化したいと考えています。リクエストはホワイトリストに登録されているサーバー (ソリューションに独自のポートがある場合は登録可能) から送信され、データ自体は意味がないため、認証や暗号化について心配する必要はありません。これは、scpサーバー、バージョン、ビルドがはるかに少なかったときに、前任者が利便性のために使用していたものだと思います。

私はすべてのサーバーに完全なルート アクセス権を持っているので、好きなことを何でもできます。.md5リモート サーバーからデータを取得する最も速い方法は何でしょうか? ファイル自体、またはファイルの内容 (例: から) のいずれかですcat /path/to/builds/*.md5

ありがとう!

答え1

私が思いつく選択肢は次のとおりです。

  • MD5ファイルを含むディレクトリをNFSまたはSMB(Samba)経由でエクスポートし、比較を行っているマシンにマウントします。
  • lighttpdなどの小さなウェブサーバーを実行して、HTTP経由でファイルを提供する
  • SCP を高速化する方法を検討します。DNS の問題や何らかの理由で認証が遅い場合を除き、「数秒」かかることはありません。

これらは、インターネット経由ではなくローカル ネットワーク上で実行していることを前提としています。そうでない場合、ファイルが「無意味」であっても、追加のセキュリティ上の考慮事項があります。

関連情報