tar.gz
Webホスティングをアーカイブに圧縮してというバックアップを作成するとしますbackup.tar.gz
。
1ヶ月後にこのプロセスを繰り返したいです。私は積極的にサイトを開発しており、最後のバックアップ以降にいくつかの変更が発生したとしましょう。
私(または私のクローンの仕事)は1ヶ月後にこのプロセスを繰り返します書くbackup.tar.gz
更新されたバックアップアーカイブを含むソースファイル。
rsync
これを使用してリモートバックアップ先(SFTP経由など)と同期する場合は、backup.tar.gz
2つのファイル間のデルタのみを同期できますか?
ファイルを上書きすると新しいタイムスタンプが生成され、動作に影響しますか?
それとも、どのような場合でも、rsyncがアーカイブを表示し、ほとんどのアーカイブがターゲットに保存されていることを認識し、変更のみを同期できますか?
ありがとうございます!
ベストアンサー1
圧縮(gzipped)ファイルは、ソースに1バイトを追加することで全体に変換されます。rsync
非常に小さな変更でもファイル全体を転送する必要があるため、効率的なコピーにはまったく適していません。
gzip
幸いなことに、効率的な転送のためにいくつかの圧縮実装を調整できますrsync
。
--rsyncable
[...]このオプションを使用すると、rsyncは変更されたファイルと変更された領域のアーカイブ構造を更新するために必要な少量のメタデータのみを転送できます。
このフラグに直接アクセスできないため、直接圧縮するtar
代わりにパイプを使用する必要があります。tar
tar cf - files and folders | gzip --rsyncable > output.tgz
GZIP
(すべての呼び出しに対してこの値を設定するために使用できる環境変数がありますが、ドキュメントには廃止されたとマークされているため、むしろgzip
使用しないことをお勧めします。)