基本上,我正在搜索是否有工具或脚本可以检测已移动或重命名的文件,以便可以获取已重命名/已移动文件的列表,并在网络的另一端应用相同的操作以节省带宽。
基本上,磁盘存储很便宜,但带宽却不便宜,问题在于文件经常会被重组或移到一个更好的目录结构中,因此当您使用rsync进行备份时,rsync不会注意到其已重命名或移动了文件并再次通过网络重新传输,尽管另一端有相同的文件。
因此,我想知道是否存在一个脚本或工具可以记录所有文件的位置及其名称,然后在备份之前,它将重新扫描并检测移动或重命名的文件,然后我可以获取该列表并重新应用另一边的移动/重命名操作。
这是文件的“常规”功能的列表:
- 大型不变文件
- 它们可以重命名或移动
[编辑:]这些都是很好的答案,最后我要做的就是查看所有答案,并将编写一些代码来解决这个问题。基本上我现在正在考虑/正在研究的是:
- 使用“ AIDE”之类的文件进行“初始”扫描,使我能够在文件上保留校验和,因为它们应该永不更改,因此有助于检测损坏。
- 创建一个inotify守护程序来监视这些文件/目录,并记录与重命名有关的所有更改并将这些文件移动到日志文件中。
- 在某些情况下,inotify可能无法记录文件系统发生了什么事情,因此,最后一步是使用find在文件系统中搜索更改时间晚于上次备份的文件。
这有几个好处:
- 来自AIDE的校验和/等,以便能够检查/确保某些媒体没有损坏
- Inotify使资源使用率保持较低水平,无需一遍又一遍地重新扫描文件系统
- 无需修补rsync;如果我必须打补丁,但我宁愿避免打补丁以减轻负担,(IE不需要在每次更新时都重新打补丁)。
- 我以前曾经使用过Unison,它的确很棒,但是我可能发誓Unison确实在文件系统上保留了副本,并且其“归档”文件会变得很大?