rsync导入/导出增量转移或增量复制结果

我的scheme是将几个GB文件从临时服务器分发到数十个相同的目标服务器。 由于rsync可以做增量转移或增量复制,我想知道什么时候rsync文件到第1个dest服务器,rsync可以导出delta转移结果吗? 并使用导入的结果rsync到其余的dest服务器。 在这种情况下,登台服务器可以在重新计算增量转移时节省CPU时间。 这可能吗?

Number of files: 160 Number of files transferred: 49 Total file size: 2993222827 bytes = 2854 MB Total transferred file size: 1847285024 bytes =1761 MB Literal data: 69543644 bytes = 66 MB Matched data: 1777741380 bytes = 1695 MB File list size: 3088 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 1256178 Total bytes received: 70240527 = 67 MB sent 1256178 bytes received 70240527 bytes 182157.21 bytes/sec = 0.17 MB/s total size is 2993222827 speedup is 41.87 

是。 这是rsync的批处理模式。 从手册页:

可以使用批处理模式将相同的一组更新应用于许多相同的系统。 假设有一棵树被复制到多个主机上。 现在假设对这个源代码树进行了一些更改,并且这些更改需要传播给其他主机。 为了使用批处理模式执行此操作,将使用write-batch选项运行rsync,以将对源树所做的更改应用于其中一个目标树。 写批处理选项使rsync客户端将“batch file”中存储的所有信息存储到其他相同的目标树中,以重复此操作。

生成batch file一次保存,在更新多个目标树时不止一次执行文件状态,校验和和数据块生成。 可以使用多播传输协议将批量更新文件并行传输到多个主机,而不是分别向每个主机发送相同的数据。

要将logging的更改应用到其他目标树,请使用read-batch选项运行rsync,指定相同batch file的名称和目标树。 Rsync使用存储在batch file中的信息更新目标树。

一个例子:

 $ rsync --write-batch=foo -a host:/source/dir/ /adest/dir/ $ scp foo* remote: $ ssh remote ./foo.sh /bdest/dir/