Rsync 仅复制文件更改的部分。因此,如果我有大量数据转储(例如文本格式的 SQL 数据库),并且我想使用尽可能少的带宽将其复制到本地计算机,我该怎么办?
我可以将其保留为未压缩的文本并使用带有 -z 开关的 rsync,或者我可以在服务器上对其进行 gzip 压缩并 rsync gzip 文件。
我怀疑源 SQL 文本文件中的微小变化可能会导致压缩 gzip 版本中的数据发生更大规模的混乱,因此随着文件的更多内容发生更改,rsync 必须做更多的工作。
此外,由于 -z 开关无论如何都会执行压缩,因此这可能是最有效的。但是,我不确定。
答案1
几年前,我正式检查过这个问题。我需要通过宽带 VPN 将 MS-SQL 备份转储从(30 个!)地区办事处复制到总部,并且尝试了所有压缩和非压缩的排列组合。
就我而言,未压缩使用 rsync 及其自带的压缩功能传输文件速度最快。文件大小通常为 4-9GB 的转储数据,其中一些文件几分钟内即可同步。
如果数据转储被压缩,rsync 几乎每次都会传输整个文件,这需要几个小时。
值得对您的数据进行一些测试,但我认为您会发现最好将文件保留原样以便 rsync 进行整理。
答案2
你的猜测很可能是正确的,最好只压缩改变的部分。