rsync は圧縮/暗号化されたファイルのデータ転送を大幅に節約しますか?

rsync は圧縮/暗号化されたファイルのデータ転送を大幅に節約しますか?

rsyncは同期のためのデータ転送を大幅に節約できるでしょうか?

1) zipファイル、

2) ASCIIアーマーGPG暗号化ファイル、および

3) Mathematica .mx ファイル、

それぞれ ?

典型的なシナリオとしては、古いコピーがすでに存在し、圧縮および/または暗号化されたファイルが同期する唯一のファイルではない、つまり、圧縮されていないファイルや暗号化されていないファイルが存在する可能性がある、というものです。

答え1

暗号化または圧縮されたファイルの問題は、データ内の 1 バイトだけが変更された場合でも、変更されたデータ バイトだけでなく、残りのファイルの内容がすべて異なることです。

これは、データ転送を削減するために rsync が使用する 1 つの戦略、つまりファイル全体ではなく、ファイルの変更されたセクションのみを転送するという戦略に反します。

したがって、ディスク上のスペースが必要でない限り、データを圧縮しないでください (その場合は、rsync などのアプリケーションに対して透過的なディスクベースの圧縮を使用します)。

コンピュータ (またはディスク) が盗まれたり紛失したりした場合にデータのプライバシーを保護する必要がある場合を除き、データを暗号化しないでください。(データのバックアップ、特に暗号化キーや回復キーのバックアップは必ず保存してください。) 繰り返しますが、ディスク全体の暗号化は rsync のパフォーマンスに最も悪影響を与える可能性は低いと考えられます (ただし、ハード ディスクが故障してデータのバックアップが利用できない場合や、他のデータ ディスク/パーティションの回復キーをバックアップせずに OS を再インストールした場合は、データが壊滅的に失われる可能性が高くなります)

上記は、関連する非圧縮/非暗号化ファイル(かなりの数)が、何らかの編集や追加によって随時部分的に変更される可能性があるものの、ファイル内のデータの大部分は変更されないことを前提としています。

答え2

1 つのファイルのみを rsync し、そのファイルが暗号化または圧縮されている場合、変更されていない場合にまったく転送する必要がないため、節約できる帯域幅は 1 つだけになります。

ただし、ディレクトリが ZIP や JPEG、GPG ファイルでいっぱいの場合でも、rsync は変更されたファイルのみを転送するため、新しいファイルのみを簡単に転送できる優れた方法です。

注: 可能であれば、非圧縮データを rsync し、必要に応じてリンクの両側で圧縮して保存すると便利です。この方法で、転送帯域幅を節約できます。例:

mkdir /tmp/torsync
cd /tmp/torsync
unzip /home/me/somefile.zip
rsync -avz . remote:/tmp/somefile
ssh remote 'zip -r somefile.zip /tmp/somefile'

もちろん、状況によって異なります。

OT: バックアップ オプションを使用すると、帯域幅を節約できない場合でも、置き換えられたファイルのバックアップ コピーが作成され、履歴コピーを簡単に取得できるため、rsync は便利です。

補足: これは圧縮や暗号化が関係するすべての形式に当てはまりますが、私は Mathematica ユーザーについてはよく知りません。

関連情報