建议解决的解决方案是将大型rsync传输拆分为一系列较小的传输.我认为最好的方法是通过顶级目录名的第一个字母,这不会给我们一个完美均匀的分布,但是足够好.
我想确认一下这样做的方法是否合理,或者是否有更简单的方法来实现目标.
为此,我遍历A-Z,a-z,0-9以选择一个字符$前缀.最初我在考虑跑步
rsync -av --delete --delete-excluded --exclude "*.mp3" "src/$prefix*" dest/
(–exclude“* .mp3”只是一个例子,因为我们有一个更长的排除列表来删除像临时文件这样的东西)
这样做的问题是,strc中不再存在的dest /中的任何顶级目录都不会被–delete接收.为了解决这个问题,我改为尝试以下方法:
rsync \ --filter 'S /$prefix*' \ --filter 'R /$prefix*' \ --filter 'H /*' \ --filter 'P /*' \ -av --delete --delete-excluded --exclude "*.mp3" src/ dest/
我正在使用show并隐藏include和exclude,否则–delete-excluded将删除任何与$prefix不匹配的内容.
这是将rsync分成较小块的最有效方法吗?是否有更有效的工具,或者我错过的旗帜,这可能会使这更简单?
解决方法
这对我来说也有一些意想不到的好处:
>因为我更担心备份“存在”而不是“可用”我实际上并不是每天都在接收端进行读取批处理 – 大多数情况下批处理相对较小>我一直在尝试使用–checksum-seed = 1 ……我可能会错误地阅读文档,但我认为它使批处理文件更具可同步性(即,当我不执行–read-batch时任何一天,第二天的批次同步更快,因为前一天的批次是一个很好的基础)>如果批次太大而无法通过互联网“及时”发送,我可以在外部驱动器上运行它.我及时的意思是,如果我在第二天的备份开始之前无法完成批处理并阅读.>虽然我不亲自这样做,但我可以在不同的位置进行两次异地备份,并将批次发送给它们.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。