Rsync:验证文件增量备份的大小

Rsync:验证文件增量备份的大小

我需要使用即在触发增量备份时rsync是否传输整个文件或仅传输对其所做的更改来测试文件的增量备份。rsync

只是为了测试,我创建了一个文件,其详细信息如下:

-rw-r--r-- 1 root root 6.6M Mar 10 11:11 tmp

我使用 rsync 将此文件传输到某个目录,如下所示:

rsync -avr --stats --human-readable tmp remotehost:/tmp/

seq我只是通过将命令的输出附加到文件来增加文件大小tmp

-rw-r--r-- 1 root root 14M Mar 10 11:15 tmp

然后rsync再次执行该命令,期望它仅传输文件的增量部分。但是,它表明整个文件已被传输:

Number of files: 1
Number of files transferred: 1
Total file size: 13.78M bytes
Total transferred file size: 13.78M bytes
Literal data: 13.78M bytes
Matched data: 0 bytes
File list size: 20
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 13.78M
Total bytes received: 31

sent 13.78M bytes  received 31 bytes  27.56M bytes/sec
total size is 13.78M  speedup is 1.00

如何交叉检查整个文件是否已传输或仅传输了增量部分?我尝试使用iptrafiftop,但我无法得出任何结论。有没有什么方法可以监控两台主机之间的数据传输?

答案1

线索就在这一行:

Matched data: 0 bytes

这意味着由于某种原因,旧文件中没有任何块与新文件匹配,这意味着整个文件已被传输。如果您对网络流量感兴趣,那么以下行提供了有关此的准确信息:

sent 13.78M bytes  received 31 bytes  27.56M bytes/sec

问题是为什么没有数据匹配。根据我的经验,rsync将正确匹配现有数据,因此问题是运行之间文件到底发生了什么。

答案2

你想要的听起来像是拥有一个与 Dropbox 同步的 Truecrypt 磁盘文件。 Truecrypt 文件中的某些内容发生了更改,并且仅将更改的部分上传到 Dropbox。情况似乎是这样。

看:rsync - 仅备份更改的块?

添加文件中的某些内容,使其变大。这是不一样的,我认为这不会起作用,除非你把它放在一个固定大小的容器中。

相关内容