0

複数のコンピューターのデータをフォルダーに保存しています。多くのフォルダーには、500 K から 125 MB のサイズのファイルが 40 から 100 G 含まれています。アーカイブする必要がある 4 TB のファイルがいくつかあり、各コンピューターに保存されているメタ データに応じて、未定義のメタ データ システムを構築します。

すべてのシステムで Linux が実行されており、Python を使用したいと考えています。ファイルをコピーしてアーカイブする最良の方法は何ですか。

ファイルを分析し、メタデータ テーブルを埋めるプログラムが既にあり、それらはすべて Python で実行されています。私たちが理解する必要があるのは、データを失うことなくファイルを正常にコピーする方法と、ファイルが正常にコピーされたことを確認する方法です。

rsync と unison を使用して subprocess.POPEn を使用してそれらを実行することを検討しましたが、これらは本質的に同期ユーティリティです。これらは基本的に一度だけコピーされますが、適切にコピーされます。ファイルがコピーされると、ユーザーは新しいストレージ システムに移動します。

私の心配は、1) ファイルがコピーされるときに破損があってはならないことです。2) ファイルのコピーは効率的である必要がありますが、速度は期待できません。LAN は 10/100 で、ポートはギガビットです。

組み込むことができるスクリプト、または提案はありますか。すべてのコンピューターで ssh-keygen が有効になっているため、パスワードなしで接続できます。

ディレクトリ構造は、古いコンピュータと非常によく似た新しいサーバーで維持されます。

4

3 に答える 3

1

よりシームレスな Python 統合が目標である場合は、

二枚舌

pyrsync

于 2012-03-09T09:24:05.263 に答える
1

私はpythonファブリックライブラリを見ます。このライブラリは、SSH の使用を効率化するためのものです。データの整合性が気になる場合は、転送前に各ファイルのフィンガープリントを作成するためにSHA1またはその他のハッシュ アルゴリズムを使用し、最初と最後の宛先で生成されたフィンガープリントの値を比較します。これらはすべてファブリックを使用して行うことができます。

于 2012-03-08T13:59:37.860 に答える
0

rsync が解決策だと思います。データの整合性が気になる場合は、man ページの「--checksum」パラメーターの説明を参照してください。

便利なその他の引数は、「--delete」と「--archive」です。コマンドの終了コードが正しくチェックされていることを確認してください。

于 2012-03-08T14:40:15.677 に答える