qrsync 是根据什么来判断文件是否有修改的?
有一批需要同步的文件 每次重新生成后即使文件内容没变、文件名没变也会被同步,难道 qrsync 判断是否有变化跟文件创建时间还有关系?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有一批需要同步的文件 每次重新生成后即使文件内容没变、文件名没变也会被同步,难道 qrsync 判断是否有变化跟文件创建时间还有关系?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
qrsync
是在rsync
基础上进行的封装,所以算法也是基于rsync
对于
rsync
,同步过程如下目录结构
、文件名
、每个文件的修改时间
和大小
-c, --checksum
参数,则会包含每个文件的checksum(一种hash)-p, --perms
参数,则会包含每个文件的owner,group以及权限传输列表
rsync算法
计算出文件中差异的部分,进行尽可能最小化的传输
因此默认情况下,判断一个文件是否需要传输,是基于
修改时间
和文件大小
,如果二者都一样,则会直接跳过这个文件。这样的算法,虽然简单粗暴,但是对I/O及CPU的消耗微乎其微,也基本上能适应大部分场景。这样的算法会忽略那些通过非正常手段
修改了文件内容,但是时间戳和文件大小都没有变化
的文件,因此rsync提供-c
参数进行更严格的对比。针对题主的情况,可以加上
--size-only
参数,这样的话,针对同一个文件(路径),如果文件大小
保持一致,只是修改时间
不同,也会直接跳过,不进行传输。