あるコンピュータから別のコンピュータ(600 GB以上)に大容量ファイルを転送する作業を処理しており、次のように圧縮しています。
tar -cpvzf file.tar.gz -C PATH_TO_DIR DIR
コーキングプロセスが完了すると、次の作業が完了します。
split -d -b 2G file.tar.gz file_part_
これにより、ファイル全体が2 GBチャンクに分割されるまで、file_part_00、file_part_01 ...が生成されます。ファイルを転送する前に、tar-splitディレクトリの各セクションを繰り返し、次のエントリを使用して対応するmd5ハッシュを収集します。
md5sum PART_NAME >> list_md5.start
各部分をハッシュしたら、次の操作を行います。
sort -u list_md5.start
(これを行うと、安全のためにアイテムを並べ替え、重複したアイテムを削除します。)
その後、部品は list_md5.start に現れる順番で 1 つずつ転送されます。別のシステムに到着すると、md5ハッシュは同じ方法で収集されますが、list_md5_2.startという別のリストに収集されます。転送後に部品を再組み立てする前に、以下を実行してください。
diff list_md5.start list_md5_2.start
違いが見つからない場合は、次のセクションに進みます。それ以外の場合は、あきらめてすべての部分を削除します。再組み立てするときは、次のことを行います。
cat file_part_* > file.tar.gz.incomplete
(会う.tar.gzの解凍を待つウォッチャーがあるため、不完全な部分があります)。 catが完了すると、次のようにファイル名が変更されます。
mv file.tar.gz.incomplete file.tar.gz
この時点で、watchdogはそれを検出し、次のコマンドを使用して解凍します。
tar -C DEST -xzf file.tar.gz --totals --unlink-first --recursive-unlink
この時点でデバッグできないエラーが発生します。
Tar Failed 2
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
/PATH/TO/DEST
解凍後、tarは失敗したかどうかに関係なく削除されます(圧縮解除に失敗した大容量ファイルを保持することは意味がありません)。
時々、md5sumが一致しないため、プロセスが停止することは注目に値します(これはcat
組み立て段階の前に確認されます)。
名前が無効であることを確認しようとしました。部品サイズをより小さいサイズに変更してみました。プロセスを手動で進行しようとしましたが、まだmd5sumの不一致またはEOFエラーの問題が発生します。
これはすべて更新されたUbuntuシステムで行われました(保留中の更新なし)。
この問題を解決する方法を知っている人はいますか?
ベストアンサー1
Rsyncは、あるホストから別のホストにファイルとディレクトリをコピーするUnixファミリーおよびLinuxシステム用のフリーソフトウェアユーティリティです。
rsync を使用して、あるシステムから別のシステムにファイルを転送します。画面を使用してrsyncを起動してから、画面を切断することができます。
Rsyncはファイル転送がインクリメンタルなので、軽いアプリケーションと見なされます。つまり、最初のフル転送の後、ファイル内の変更されたビットのみが転送されます。 Rsynchは、ファイアウォールの外側のリモートコンピュータにデータを同期してオフサイトバックアップを提供するためによく使用されます。ウェブサイトのミラーリングにも使用されます。