我有一个外部硬盘,我使用 rsync 将其备份到另一个外部硬盘。
我最近更改了主硬盘上的大量文件名以匹配新格式。
如果我直接在备份磁盘上进行相同的文件名更改(我将使用脚本执行此操作),rsync 将如何进行?理想情况下,我希望它不要重新复制这些文件,因为可能有超过 TB 的文件已收到新文件名。
我猜测直接在备份磁盘上进行相同的文件名更改是最好的方法,但如果有替代方案,我也想听听它们。
我有一个外部硬盘,我使用 rsync 将其备份到另一个外部硬盘。
我最近更改了主硬盘上的大量文件名以匹配新格式。
如果我直接在备份磁盘上进行相同的文件名更改(我将使用脚本执行此操作),rsync 将如何进行?理想情况下,我希望它不要重新复制这些文件,因为可能有超过 TB 的文件已收到新文件名。
我猜测直接在备份磁盘上进行相同的文件名更改是最好的方法,但如果有替代方案,我也想听听它们。
rsync
有很多命令行选项。默认情况下,它将检查每个文件的修改时间戳和文件大小,如果两者匹配,它将假定该文件在源和目标处相同,并且不会再次传输该文件。通常,移动或重命名文件不会导致修改的时间戳被更新。因此,如果您在两个驱动器上以相同的方式移动文件,则修改后的时间戳不应更改,文件大小也不会更改,因此您应该能够继续使用正常的 rsync 进程,而不需要所有文件正在被重写。但是,如果您的进程确实需要写入文件,并且修改时间不再匹配,则可以指定标志
-c
来指示rsync
使用校验和。rsync
将在每一侧执行校验和并比较这些校验和,而不是比较时间戳和文件大小。仅当校验和匹配时才会跳过文件。当 rsync 将文件复制到目标服务器时,它不会更改正在复制的文件上的时间戳。因此,当您运行下一个 rsync 时,它会正确比较日期时间戳。
在所有情况下,根据您的备份方法,备份文件应始终具有与源文件相同或稍新的时间戳。
Rsync 可防止较新的文件被较旧的文件覆盖。如果您正在同步并且目标的日期较新,您应该收到消息“[文件]较新”。即使时间戳略有不同(在不同文件系统格式之间复制时可能会发生这种情况),只要备份文件具有相同的名称、相同的大小以及相同或更新的时间戳,就不会被覆盖。