rsync --compare-dest,不是加速结果

rsync --compare-dest,不是加速结果

我已尝试rsync --compare-dest按预期开始工作,但我需要一些帮助。我的目标是为 CentOS 创建离线存储库增量。我有一台连接到 Internet 的服务器,用于存储 CentOS 镜像。我的离线系统有一个基线,我想创建增量文件,因为我需要在光盘上携带更新。

我知道围绕同一问题有很多主题,但我无法使其发挥作用。

这是我如何尝试让一个简单的示例起作用的解释:

[xttomfal@protectera-CentOS-Internet ~]$ ls testdiff1
testfil1  testfil2  testfil3
[xttomfal@protectera-CentOS-Internet ~]$ ls testdiff2
testfil1  testfil2

复制同名文件,意味着内容完全相同。现在我创建了一个名为的目录diffresult/,我希望将 testfil3 复制到其中。

如果我比较目录

[xttomfal@protectera-CentOS-Internet ~]$ diff testdiff1 testdiff2
Only in testdiff1: testfil3
[xttomfal@protectera-CentOS-Internet ~]$

然后我尝试了很多不同的 rsync Compare-dest 命令,例如:

[xttomfal@protectera-CentOS-Internet ~]$ rsync -av --progress --stats --compare-dest=testdiff1 testdiff2/ diffresult/
sending incremental file list
--compare-dest arg does not exist: testdiff1
./
testfil1
              9 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)
testfil2
              9 100%    8.79kB/s    0:00:00 (xfr#2, to-chk=0/3)

Number of files: 3 (reg: 2, dir: 1)
Number of created files: 2 (reg: 2)
Number of deleted files: 0
Number of regular files transferred: 2
Total file size: 18 bytes
Total transferred file size: 18 bytes
Literal data: 18 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 215
Total bytes received: 106

sent 215 bytes  received 106 bytes  642.00 bytes/sec
total size is 18  speedup is 0.06
[xttomfal@protectera-CentOS-Internet ~]$ ls diffresult/
testfil1  testfil2
[xttomfal@protectera-CentOS-Internet ~]$

所以问题似乎是复制的文件是显示在两个目录中的文件,而不是 Delta 目录中的文件。

有没有办法只复制目录之间的差异文件?

答案1

有没有办法只复制目录之间的差异文件?

是的。在您的情况下,所缺少的是比较目录是相对于目标的。同样的问题也适用于链接目录。这里的解决方案是使用绝对路径

设想

mkdir /tmp/608927
cd /tmp/608927
mkdir testdiff{1,2} changed
touch testdiff1/testfil{1,2,3}
cp -p testdiff1/testfil{1,2} testdiff2/

测试运行,将文件从testdiff1复制到changed,但仅复制那些既不是最新的testdiff2也不是最新的文件changed

rsync -av --compare-dest "$PWD"/testdiff2/ testdiff1/ changed/

输出

sending incremental file list
./
testfil3

sent 165 bytes  received 38 bytes  406.00 bytes/sec
total size is 0  speedup is 0.00

证据

ls changed/
testfil3

请注意,如果您在看起来像本地系统上的目录之间进行复制,rsync则会有效地降级为制作完整副本(或无副本)。如果您rsync通过网络连接运行,它可以在每一端运行一个自身的实例,并且您将获得仅传输更改的好处。

相关内容