基本上我正在搜索是否存在可以检测移动或重命名文件的工具或脚本,以便我可以获得重命名/移动文件的列表,并在网络的另一端应用相同的操作以节省带宽.
基本上磁盘存储很便宜,但带宽不是,问题是文件经常被重新组织或移动到更好的目录结构中,因此当你使用rsync进行备份时,rsync不会注意到它是重命名的或者移动文件并重新通过网络重新传输,尽管另一端有相同的文件.
所以我想知道是否存在可以记录所有文件及其名称的脚本或工具,然后在备份之前,它将重新扫描并检测移动或重命名的文件,然后我可以获取该列表并重新应用另一方面的移动/重命名操作.
[编辑:]这些都是很好的答案,我最终做的是查看所有的答案,并将编写一些代码来处理这个问题.基本上我现在正在思考/工作的是:
>使用AIDE之类的东西进行“初始”扫描,并使我能够对文件保持校验和,因为它们应该永远不会改变,因此它有助于检测损坏.
>创建一个inotify守护进程,它将监视这些文件/目录并记录与重命名有关的任何更改.将文件移动到日志文件.
>在某些边缘情况下,inotify可能无法记录文件系统发生的事情,因此最后一步是使用find在文件系统中搜索比上次备份更改时间的文件.
这有几个好处:
>来自AIDE的校验和/等能够检查/确保某些媒体没有被破坏
> Inotify可以降低资源使用率,无需反复重新扫描文件系统
>无需修补rsync;如果我必须修补我可以做的事情,但我宁愿避免修补事情以减轻负担,(IE不需要每次更新时重新修补).
>我之前使用过Unison并且非常好用,但是我可以发誓说Unison会在文件系统上保留副本并且它的“存档”文件会变得相当大吗?
解决方法
Unison
http://www.cis.upenn.edu/~bcpierce/unison/声称能够检测移动和重命名.
Bugzilla条目跟踪此问题:https://bugzilla.samba.org/show_bug.cgi?id=2294