web-dev-qa-db-ja.com

転送前にファイルとディレクトリをアーカイブする

cpiocpなどで直接転送するのではなく、scpなどで転送するために、すべてのファイルとディレクトリをアーカイブファイルにすることの利点は何でしょうか。

3
Tim

転送する前に大量のファイルをtarで処理する理由はいくつかあります。

  • 圧縮:多くの小さなファイルではなく、1つの大きなファイルを圧縮することで、より良い圧縮が得られます。少なくともscpはその場で圧縮できますが、ファイルごとに圧縮されます。

  • 接続:少なくともscpでは、転送するファイルごとに新しい接続を確立します。これにより、多数の小さなファイルを転送する場合、スループットが大幅に低下する可能性があります。

  • 再起動:転送プロトコルで転送の途中での再起動が許可されている場合は、転送が中断されたときにどのファイルが進行中であったかを把握するよりも簡単な場合があります。

  • アクセス許可:ほとんどのアーカイブプログラムでは、ファイルの所有権とアクセス許可を保持できますが、転送プログラムではサポートされていない場合があります。

  • ファイルの場所:宛先の場所が長いパスの終わりにある場合、または宛先が決定されていない場合は、アーカイブを宛先に転送し、ファイルの移動先を決定すると便利な場合があります。

  • 整合性:ファイルごとに個別にチェックサムを計算するよりも、単一のアーカイブファイルのチェックサムを計算してチェックする方が簡単です。

9
KeithB

これを行うのは、1つの大きなファイル、次に数千の小さなチャンクを処理する方が簡単な場合が多いためです。

すべてのファイルのチェックサムを計算する必要はありません。ほとんどの場合、1つのアーカイブのチェックサムを作成するだけで十分です。

また、ファイルのアクセス許可を保持する方が簡単です。

これらは私の理由のほんの一部です。

2
echox

Rsyncの使用が可能であれば、最初にアーカイブする利点はほとんどなくなります。

  • 圧縮:rsyncには圧縮が組み込まれています(オプション-z)。
  • 接続:接続数(通常は1)は、転送されるファイルの数に応じて増加しません。
  • 再起動:rsyncは差を送信するだけなので、増分転送は簡単です。部分的なファイルを保持することを選択できるため、送信を再開するのが速くなります。
  • 整合性:チェックサムは内部で使用されます。それについて偏執的である場合は、-cオプションを強制できるため、再度チェックされます。
2
Wei-Yin