
さまざまなシステム向けにさまざまなプログラムを構築するサーバーが多数あります。
ビルドが完了すると、単一のファイルにアーカイブされ、圧縮されて、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 の問題や何らかの理由で認証が遅い場合を除き、「数秒」かかることはありません。
これらは、インターネット経由ではなくローカル ネットワーク上で実行していることを前提としています。そうでない場合、ファイルが「無意味」であっても、追加のセキュリティ上の考慮事項があります。