3
回答
大文件同步有什么好办法?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   


如题,大文件同步有什么好的办法?主要是如何判断其是否已经同步完毕然后再进行节点分发。

请不要简单的告诉我使用rsync,我也知道。

目前的问题:

crontab的执行时间为每3分钟一次,一般都是百十来兆的文件没什么问题,但是偶尔会有几个上G的文件需要同步,3分钟时间就不够,会导致rsync起了一堆的进程,然后... 就没有然后了。

ps:我没有说rsync不好,只是这个东东有没有可配置的,比如说我上次同步未完成,这次就不要再起进程了

感谢!


举报
共有3个答案 最后回答: 3年前

rsync在同步文件filename的时候,似乎是先创建一个 .filename.randomhash 文件,这个文件的大小会不断增加,当同步完成,文件名就改为 filename

因此我的想法是判断文件是否存在就可以了

为什么使用rsync?

因为大文件大部分内容相同,不是每次都需要同步。自然应该pass掉相同的内容,既然这样为什么不能是rsync?

rsync在网络传输时,会对比源和目的端的文件,相同部分pass,差异部分压缩传输。

唯一的问题:对比文件时,读取两边的文件,短时间占用系统IO资源比较明显。好一点的服务器可以忽略这个问题。

楼主对rsync还是自己测试测试再下结论吧!

--- 共有 4 条评论 ---
淡定的wo回复 @Lvfifi : 不好意思,错别字。 “这个不是问题” 3年前 回复
淡定的wo关于多rsync进程的问题,自己写一个shell,发现有rsync运行。下次crontab的时候跳过,不执行即可。这个不是文件。 inotify是对实时性要求很高才用。对大文件来说,我个人觉得场景不合适。 3年前 回复
Feng_Yu回复 @Mr6 : 不会,rsync会先对比再同步,已经同步过的数据是不会再同步的,完全可以放心大胆的使用。觉得crontab不可靠,还可以用Inotify实时同步 3年前 回复
扁豆焖面先生crontab的执行时间为每3分钟一次,一般都是百十来兆的文件没什么问题,但是偶尔会有几个上G的文件需要同步,3分钟时间就不够,会导致rsync起了一堆的进程。 3年前 回复
顶部