为什么 Rsync 每次都复制相同子集(未更改)的文件?

为什么 Rsync 每次都复制相同子集(未更改)的文件?

我正在使用 rsync 备份我机器上的文件,但注意到日志文件中每次都会重新同步一小部分文件。为什么会发生这种情况?

(我可以理解那些 .AppleDoubles 可能会时常发生变化,但是图片和电影文件已经很旧了,不应该发生改变。)

我的 rsync 命令是

rsync -av --delete --log-file=Logfile.log --rsync-path='sudo rsync' fromfolder tofolder

并且日志文件不断出现

2014/11/25 17:08:27 [11866] receiving file list
2014/11/25 17:08:29 [11868] >f.st....... Foto/2007/DSC_3646.JPG
2014/11/25 17:08:29 [11868] >f.st....... Foto/2007/DSC_5333.JPG
2014/11/25 17:08:30 [11868] >f.st....... Foto/2007/DSC_5791.JPG
2014/11/25 17:08:30 [11868] >f.st....... Foto/2007/DSC_6005.JPG
2014/11/25 17:08:30 [11868] >f.st....... Foto/2007/DSC_6743.JPG
2014/11/25 17:08:31 [11868] >f.st....... Foto/2007/R1.JPG
2014/11/25 17:08:31 [11868] >f.st....... Foto/2007/R2.JPG
2014/11/25 17:08:31 [11868] >f..t....... Foto/2007/.AppleDouble/DSC_3646.JPG
2014/11/25 17:08:31 [11868] >f..t....... Foto/2007/.AppleDouble/DSC_5791.JPG
2014/11/25 17:08:31 [11868] >f..t....... Foto/2007/.AppleDouble/DSC_6743.JPG
2014/11/25 17:08:31 [11868] >f..t....... Foto/2007/.AppleDouble/R1.JPG
2014/11/25 17:08:31 [11868] >f..t....... Foto/2007/.AppleDouble/R2.JPG
2014/11/25 17:08:31 [11868] >f.st....... Foto/2007/L1000503.JPG
2014/11/25 17:08:32 [11868] >f..t....... Foto/2008/.AppleDouble/L1000503.JPG
2014/11/25 17:08:43 [11868] >f.st....... Multimedia/B.MOV
2014/11/25 17:08:43 [11868] >f..t....... Multimedia/.AppleDouble/B.MOV
2014/11/25 17:08:44 [11868] sent 105,561 bytes  received 80,878,709 bytes  3,446,139.15 bytes/sec
2014/11/25 17:08:44 [11868] total size is 177,280,586,662  speedup is 2,189.07

答案1

在默认操作模式下,rsync使用修改时间作为关键来确定是否应传输文件。摘自其手册页:

Rsync 使用“快速检查”算法(默认)查找需要传输的文件,该算法查找大小或上次修改时间已发生变化的文件。

使用该--checksums选项,它将查看文件内容:

-c, --checksum              skip based on checksum, not mod-time & size

答案2

仔细研究后,我发现了问题的根本原因:接收文件系统不区分大小写,并且所涉及的文件除了扩展名外,其他所有名称都相同,如下所示:

2873603 Oct 20  2009 R1.JPG
2180728 Oct 20  2009 R1.jpg
2814276 Oct 20  2009 R2.JPG
3150011 Oct 20  2009 R2.jpg

似乎有一个工作通用解决方案问题已经解决了,但由于我只需要更改几个文件,所以我手动修改了它们的名称。瞧,问题解决了。

相关内容