我想将这些文件/文件夹同步到外部备份系统,然后运行每日任务,根据每日更改重新同步备份.
这些变化不是那么频繁,但有些日子我们可能会有大约300GB的差异(大约1.5K文件).
我一直在考虑rsync或rdiff-backup或rsnapshot作为一些工具,但我想先用rsynch运行一些测试.
我有一个rsync的主要问题,那就是:
检查现有文件的更改时间过长.我们谈论的时间超过20小时,这使得每日备份毫无意义.这是使用rsync -rvhzP或-rvhP.它似乎只是扫描所有文件,即使没有添加/更改/删除文件也需要数小时.
难道我做错了什么?
我提到的任何其他系统(rdiff-backup或rsnapshot)会表现得更好吗?无论如何,我都假设它们基于rsync.
提前致谢.
使用额外信息进行更新:我们有大约2600个目录和100k文件,总计大约3.5TB,使用rsync版本3.0.9协议版本30运行测试.就每日更改而言,通常每天有10个文件更改,但它可以在1.5K文件更改/添加/删除和大约300Gb的峰值(虽然这些峰值不常见,并且通常传播appart)
解决方法
rsync
man page号:
-t,–times
This tells rsync to transfer modification times along with the files and update them on the remote system. Note that if this option is not used,the optimization that excludes files that have not been modified cannot be effective; in other words,a missing -t or -a will cause the next transfer to behave as if it used -I,causing all files to be updated (though rsync’s delta-transfer algorithm will make the update fairly efficient if the files haven’t actually changed,you’re much better off using -t).
基本上,您正在失去优化,因此rsync可以使用文件的修改时间戳作为标记来指示文件已被修改.如果发送方和接收方之间的修改时间戳不一致,则使用增量复制算法并扫描文件内容.正如您所看到的那样,使用与您所说的一样大的语料库将是一个漫长的扫描过程.
如果文件更改后文件的修改时间戳没有更新(出于某些奇怪的原因),那么这将无效,您将不得不进行完整的文件扫描.如果您需要远程文件的修改时间戳来反映它们的同步时间,而不是源文件的修改时间戳,那么这也不是一个可行的解决方案.
我怀疑这个选项会从根本上加速你的同步.