我有一个每日进程,可以将一个非常大的mysql数据库(> 500gb)的快照创建到backup.tar.gz文件中。我想将此文件rsync到另一台远程计算机。传输数据所需的时间比实际创建的备份要长得多,所以我想知道......
我可以在完全完成之前使用rsync开始传输backup.tar.gz文件,所以当它完成时,大部分数据已经被移动到另一台远程机器了吗?或者这会破坏tar.gz文件而不起作用吗?
答案 0 :(得分:3)
gzip
是过滤压缩,这意味着它可以以一种增量方式压缩和解压缩数据流。这意味着已写入的压缩数据以后不会更改,因此您可以使用rsync
复制部分文件,然后继续复制其余文件。
如果有疑问,请进行概念验证测试并比较校验和。
<强>更新强>
传输大文件时,最好启用--partial
标志,以便在传输中断的情况下,rsync
将保留部分传输的文件,以便您以后继续。另一个相关的有用标志是--progress
。事实上,使用较短的-P
标记会更容易,这与使用--partial
和--progress
相同。
答案 1 :(得分:1)
Rsync以多种方式比较源和目标,其中一些是修改日期,大小和校验和。如果大小或校验和发生变化,rsync会抱怨文件已经更改。您可以等到tar完成。