我最近刚刚将我的 MacBook Pro 更新为 Mountain Lion。我使用 rsync 来备份我的 macbook pro 和带有内置硬盘的时间胶囊无线路由器上的某些目录。
rsync -avzm --delete --exclude-from '/some_dir/exclude_list.txt' \
/Volumes/Data/some_other_dir /Volumes/TimeCapsule/some_other_dir/ \
2>> ~/tmp/sync_error.txt
在 Mountain Lion 之前一切都运行良好。 Rsync 仅复制新的或更改的文件。现在,升级后,rsync 希望每次都复制所有文件,一遍又一遍。即使它们在远程主机(时间胶囊)上没有更改或没有删除。我不知道为什么(我在 rsync 期间没有遇到任何错误)。
有任何想法吗?
答案1
这是一个暂定的答案,它可以解释症状,但我不知道原因,以及解决方案,是否是这里的问题。
假设源文件系统以微秒精度存储文件时间,而目标文件系统仅以 1 秒精度存储文件时间。那么目标文件的修改时间将不会完全等于源文件的mtime。因此rsync每次都会再次同步文件。
时间精度方面可能发生了一些变化。不过,我希望旧文件(升级前的文件)不会再次被复制。也许 rsync 处理这个问题的方式发生了变化。
尝试将 传递--modify-window=1
给rsync
.这允许时间最多相差一秒,rsync 仍会将它们视为相等。
另一种可能性是 rsync 正在尝试复制一些新的扩展属性,但由于备份设备不支持该属性而失败。不过,我希望在这种情况下它不会再次复制文件,而只会复制它们的属性。