有没有办法批量 rsync?

有没有办法批量 rsync?

我在 Subversion 存储库中拥有大量数据 (11G),我正在使用 rsync 将其迁移到 Alfresco,当新文件进入文件系统时,Lucene 会对其进行索引。我使用 dav mount 作为代理来允许我进行 rsync。

我遇到的问题是,对于如此庞大的数据块来说,rsync 后的索引是一项非常昂贵的操作,所以我想知道是否有办法将 rsync 逻辑地分成大小相同的批次(每个 500MB),以便我可以在 cron 中安排它们。

目前,我正在遍历顶层文件夹并首先遍历最小的文件夹,但是一旦我完成这些文件夹,更大的子目录就会相当麻烦。

如果您需要任何进一步的信息,请告诉我。

提前致谢。

答案1

在我尝试回答之前,先说一句:VCS 非常擅长在计算机之间同步数据。也许更好的解决方案是签出 Subversion 存储库以进行迁移。如果 Subversion 由于某种原因不适合,请查看 Git。Git 在同步方面非常高效,因为它可以计算一次差异。同步本身只不过是传输最少量的数据。

也就是说,rsync没有“限制”(无论是文件数量还是传输的数据量)。

您有两个选择:

  1. 通过一个小的管道命令运行 rsync,该命令会在一定量后终止连接。

  2. 使用不同的过滤器多次运行 rsync(每个子目录运行一次或所有小文件运行一次,然后每个大文件再运行一次)

#1 的缺点很明显,它会导致两次复制大文件(比如说你有一个小文件 + 90%的大文件 -> 达到限制 -> 大文件被传输了 1.9 次)

#2 的缺点是过滤器可能太粗糙,不符合您的目的。

相关内容