备份重命名文件的负载

备份重命名文件的负载

我用于基本备份的命令rsync -avr --delete working_directory/ backup/将正确创建我的目录的镜像。

然而,有时我会在源中移动大量文件。例如,将a/重命名为A/,b/重命名为B/。在这种情况下,该命令将首先删除目标 a/,然后复制整个 A/。

当 a/ 很大时,这很烦人。有没有一种方法可以应用更有效的解决方案,即简单地移动目标中的文件,以便它们与源匹配?

它不必基于 rsync。任何 cli 工具都可以。

答案1

rsync 没有“智能”方式知道 REPLICA/a 是 MASTER/A 的“突变”。

最大限度地减少此类复制的唯一方法是您跟踪所采取的重命名操作(扫描历史记录中的 mv 实例)然后复制这些命令(手动?)在 REPLICA 下的相应目录上,然后执行正常的 rsync 操作,该操作将仅复制纯增量。

问题是,假设两端的文件系统类型相同,REPLICA inode 表与 MASTER inode 表不同,因此无法匹配可能已在不同设备上重命名的 inode。不幸的是,但没有办法解决。

您希望直接实现的唯一方法是 rsync 实际上跟踪 inode 映射表(在每个文件的基础上)以进行 inode 对应。然而,在我看来,由于不同的设备对于不同的文件系统具有不同的索引节点表结构,所以这个问题太复杂了,无法考虑或追求。

相关内容