我是 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