rsync模糊文件池创建
fuzzif的Python项目详细描述
rsync fuzzy文件池管理器
rsync使用它的–fuzzy标记在一个已转换的文件目录中查找相似的文件,但是没有正确地索引和搜索整个文件集以查找匹配的文件。这样做的结果是,当文件移动或从文件集中删除并再次替换时,rsync将失去匹配远程内容和进一步节省带宽的能力。
fuzzify简单地将一个池设置为一个临时目录,其中文件集的硬链接被分组到表示文件大小(或可选的sha256内容总和)的目录中,并以类似的方式命名,这样rsync就可以很容易地找到并匹配在整个文件中具有相同可能性的文件。准备好了。
fuzzify在源目录和目标目录下本地和远程运行后,rsync可以在整个文件集上再次运行,因为它的字母数字调整的目录名是...fuzzify`,所以首先处理池的文件集上会有--hard-links标记。
如果运气好的话,在办公环境中会有很多机会,已经移动的文件不会被重新传输到远程位置。
如果您打算备份文件,那么fuzzify准备时间当然是一个考虑因素。它运行得很快,希望它运行得足够快,在您的情况下节省带宽是值得的。
您可以选择在脏模式下运行fuzzify。当文件从文件集中删除时,它们将以某种方式保留在fuzzify池中,当它们还原到文件集中时,rsync很可能会找到匹配的文件。由于每次刷新池时都会通过硬链接保留所有文件,因此可能不希望将池保持很长时间。
示例会话
在本地:
fuzzify --logging=debug /sourcedir/
在遥控器上:
fuzzify --logging=debug /destdir/
rsync:
rsync -avPHS –human-readable –stats –fuzzy /sourcedir/…fuzzify /sourcedir/ remote:/destdir/ –delete –delete-after
然后根据需要在sourcedir和destdir中删除…fuzzify。