镜像文件通过rsync移动

Dan*_*ins 5 rsync

我们用于备份的专有软件(sadface)会生成一系列图像,我们用它们rsync同步到异地位置。生成的文件类似于:

a.bak
b.bak
c.bak
Run Code Online (Sandbox Code Playgroud)

因此,我们将它们同步并在场外机器上获得完全相同的结构。然后备份程序再次运行,我们得到如下信息:

archive/a.bak
archive/b.bak
c.bak
d.bak
e.bak
Run Code Online (Sandbox Code Playgroud)

所以rsync工作运行起来,我们最终得到如下结果:

archive/a.bak
archive/b.bak
a.bak
b.bak
c.bak
d.bak
e.bak
Run Code Online (Sandbox Code Playgroud)

显然,我们希望场外机器看起来像现场机器一样,以避免混乱并节省存储空间。有什么办法可以反映rsync现场发生的动作,还是我们必须在外面解决一些问题rsync

Lau*_*ves 3

我不知道有什么方法可以让它智能地检测到文件只是“移动”了。但是,您可以使用该--delete标志,以便从目标中删除源中不再存在的文件。缺点是,每当文件移动时,您都会重新复制该文件,但至少您不会再为目标上的旧位置浪费空间。

  • 文件系统上的数据就是它需要的所有状态。Rsync 已经可以检测内容是否在文件内移动并有效地处理它。(搜索“rsync 算法”)我不明白为什么不能将其推广到 rsync 的某些未来版本中的跨文件工作。 (3认同)