rsync到文件的压缩存档


11

我使用rsync备份服务器,但是这些备份非常大,我想对其进行压缩。有没有一种方法可以在rsync周围进行某种包装,从而在备份文件中压缩文件,从实时文件rsync更改,然后在复制文件后立即重新gzip?

也就是说,如果在现场的源文件是酒吧巴兹,备份有foo.gzbar.gzbaz.gz

重申一下:我想要在一端压缩文件,而在另一端压缩文件。我不想在rsync之前进行压缩,因为即使使用--rsyncable,它也会降低rsync的效率。我知道rsync的-z选项。我的备份计算机上没有空间来存储所有未压缩的文件。

Answers:


10

我不确定我了解您要做什么,但是您可以在主服务器上创建gzip压缩备份,以确保它们易于rsync并且不会在传输过程中解压缩任何内容。

gzip(1)

--rsyncable
       While compressing, synchronize the output occasionally based on
       the  input.   This  increases  size by less than 1 percent most
       cases, but means that the rsync(1) program can much more  effi‐
       ciently  synchronize  files  compressed with this flag.  gunzip
       cannot tell the difference between a  compressed  file  created
       with this option, and one created without it.

真好 我不知道rsyncable标志。那很方便。我不知道为什么这不是亏损1%的默认值
马特·西蒙斯

注意:--rsyncable选项并非在所有gzip版本上都可用,并且它来自通用补丁程序而非核心gzip代码,因此版本号不足以知道您是否拥有它。
mc0e 2015年


-1

您可以为rsync写一个包装器。如果您“拉”数据,则无需执行任何特殊操作。如果要将数据从原始计算机“推送”到备份服务器,则使其工作起来更加困难:

首先,必须确保至少以运行备份的用户身份,使用与原始rsync相同的名称,路径和参数来调用包装程序。

其次,请确保不要向stdout写入任何内容,因为这会破坏通信通道。

第三,确保传递您获得的所有参数,仅针对新未压缩的目标进行适当的修改。


-2

他可能正在寻找通过rsync进行数据传输压缩的方法,而不是另一端的文件压缩方法。

检出:http : //jimmyg.org/blog/2007/rsync-basics.html

手册页中的压缩参数:

   -z, --compress              compress file data during the transfer

        --compress-level=NUM    explicitly set compression level

默认情况下,ssh会在一定程度上进行自己的压缩。我不知道rsync比本地ssh好多少。如果您的大多数文件已被压缩为gzip文件,则rsync的压缩机制可能无法为您做很多事情。您只能挤压太多文件。


不,我只是在寻找文件压缩的​​一端。rsync已经压缩的文件效率低下,所以我希望rsync部分发生在未压缩的数据上。
rjmunro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.