我正在使用rsync备份包含很多gz文件的存储库,其中包括每天很多新文件。rsync备份的进行速度比预期的要慢,因为这些gz文件不是使用gzip的--rsyncable选项构建的(这会使gz文件更加“ rsync友好”,而不会显着增加其大小或影响其兼容性)。而且我无法在创建时解决问题,因为文件是由使用python的gzip模块的python脚本(rdiff-backup)生成的,并且不支持与gzip的--rsyncable等效的文件。
因此,在运行rsync之前,我可以识别源数据中的任何新gz文件(即自上次运行rsync以来的新文件)。现在,我想“重新gzip”这些文件,以便将它们以rsyncable-format格式压缩。然后,我可以从优化源运行rsync。
我认为这意味着先通过gunzip然后再通过gzip --rsyncable运行每个文件,但是我不太确定如何以不会冒丢失数据或元数据风险的方式来执行此操作。收到的建议不胜感激。
好点子。其实我不确定,我会检查一下。现在让我们假设是的,某些gz文件的内容确实发生了变化。
—
gogoud
我能想到的最好的事情是运行一个脚本,该脚本检查新文件,将它们解压缩,然后再使用对其进行gzip压缩
—
汤姆·亨特
--rsyncable
。
我同意,如果文件没有更改,这应该不是问题。特别是为了提高速度,请确保通过使用
—
user3188445
-a
标志保存时间来跳过基于时间的校验和。另外,我的gzip版本没有--rsyncable
标志,但确实包含一个名为的程序,该程序znew
可能会用于您需要的程序。
事实证明,正如汤姆所认为的那样,由rdiff-backup创建的gz文件一旦创建就不会更改,因此使用
—
gogoud 2015年
--rsyncable
无济于事。我希望有一行代码或简短的脚本可以安全地解压缩gz归档文件并使用来重新打包--rsyncable
。但这对我来说只是一个学术问题。
--rsyncable
是两次运行之间是否更改了文件并rsync
尝试发送更改。新文件不在乎它们是否可同步,因为rsync
无论如何都必须发送所有数据。在rsync运行之间是否更改了文件?