rsync 同步未改变的文件

rsync 同步未改变的文件

我是 rsync 的新手。我用它来备份我家里的外部驱动器上的文件。我的 rsync 行是:

sudo rsync -vv -rP /inputFolder ~/backupFolder

我连续进行了两次备份,以验证 rsync 是否只备份了被修改过的文件,正如我从阅读的内容中理解的那样。但令我惊讶的是,第二次备份花费的时间与第一次一样多,尽管两次备份之间没有任何文件发生变化。

重要提示:备份位于 samba 网络驱动器上。

由于自第一次备份以来没有任何文件发生改变,因此第二次备份不是应该更快吗?

答案1

您可能希望将-t命令行参数包含在内rsync,告诉它保留时间戳,否则时间戳必然会有所不同,从而导致文件重新传输。或者,您应该包含-I以告诉rsync它忽略时间戳。无论如何,您可能会享受一些高质量的时间

man rsync

答案2

默认情况下,rsync传输之前会检查文件大小和修改时间以检查文件是否相同。

对于大小和修改时间相同的文件,传输时间rsync相当具有误导性,如果您这样做,rsync -vvv那么您会看到rsync花费大部分时间进行增量传输检查以确保文件相同,rsync逐块执行此操作。简而言之,如果大小和修改时间保持不变,rsync则不会进行传输。

另请注意,您可以使用该选项在传输之前进行校验--checksum

但就您而言,由于文件大小相同,因此一定是修改时间导致文件重新传输。这是合理的,因为您没有使用保留修改时间的选项rsync

您可以使用 -t ( --times) 选项来保留修改时间或使用 -a ( --archive) 选项来包含-rlptgoD以下选项:

sudo rsync -vv -trP /inputFolder ~/backupFolder

sudo rsync -avvP /inputFolder ~/backupFolder

相关内容