我可以rsync一个tar文件,因为它仍然被创build?

我有一个每天的过程,创build一个非常大的MySQL数据库(> 500GB)到backup.tar.gz文件的快照。 我想rsync这个文件到另一台远程机器。 传输数据将花费比实际创build备份更长的时间,所以我想知道…

我可以在完全完成之前使用rsync启动backup.tar.gz文件的传输过程,因为大部分数据已经被移动到另一个远程机器上了。 或者这会损坏tar.gz文件而不起作用?

是的,我认为这将工作。 因为gzip是一种过滤压缩,这意味着它可以以一种增量的方式压缩和解压缩一个数据流。 这意味着已经写入的压缩数据将不会在以后更改,因此您可以使用rsync复制部分文件,并在稍后继续复制。

如果有疑问,请进行概念验证测试并比较校验和。

UPDATE

当传输大文件时,最好启用--partial标志,以便在传输中断的情况下, rsync将保留部分传输的文件,以便稍后继续。 另一个相关的有用的标志是 – --progress 。 实际上,使用较短的-P标志就比较容易,这与使用--partial--progress

Rsync以几种方式比较源和目的地,其中一些是修改日期,大小和校验和。 如果大小或校验和发生变化,rsync会抱怨文件已经改变。你可能还要等到tar完成。