Rsync 友好 gzip

Rsync 友好 gzip

我肯定不是唯一一个有此问题的人——我正在 rsyncing .tar.gz 文件,注意到每次 rsyncing 的都是完整文件,而不是差异文件。仔细阅读后发现,早在 1999 年,就有人创建了一种算法来解决这个问题http://svana.org/kleptog/rgzip.html(仅需传输 5% 的数据)

从那以后,这个问题有出现过吗?我该如何创建 rsync 友好的 .tar.gz 文件?

答案1

我的 gzip(在 ubuntu 和 fedora 上)有 --rsyncable 选项。因此使用以下命令创建 tarball:

tar -c whatever/ | gzip --rsyncable > file.tar.gz

答案2

BeezNest 对此有很好的解释gzip 的 rsyncable 选项在作者的测试中,此选项使文件大小增加了约 1%,但使得 rsync 将更新传输到 gzip 压缩文件的速度提高了 1,300 倍以上。

欲了解血腥细节,请参阅这次讨论(具体来说,是第 4.4.2 节),他们引用了它。其要点如下:

修改很简单:

  1. 针对未压缩文件中当前点周围的小窗口计算快速滚动签名;
  2. 流压缩照常进行;
  3. 当滚动签名等于预定值时,压缩表将被重置,并且发出一个令牌来指示新的压缩区域开始。

答案3

我喜欢这个,因为我想将其压缩为 tar.gz,而不仅仅是 .gz

GZIP='--rsyncable' tar cvzf bobsbackup.tar.gz /home/bob

答案4

我知道 Ubuntu Linux 采用修补(gzip 文件)到 gzip 源以允许--rsyncable标记。您可以下载该补丁并自行使用,或者查看您的发行版是否包含该补丁。

相关内容