![rsync --append 是否能够恢复中断的复制过程而不读取所有复制的数据?](https://linux22.com/image/210431/rsync%20--append%20%E6%98%AF%E5%90%A6%E8%83%BD%E5%A4%9F%E6%81%A2%E5%A4%8D%E4%B8%AD%E6%96%AD%E7%9A%84%E5%A4%8D%E5%88%B6%E8%BF%87%E7%A8%8B%E8%80%8C%E4%B8%8D%E8%AF%BB%E5%8F%96%E6%89%80%E6%9C%89%E5%A4%8D%E5%88%B6%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
我需要将同一台计算机上的一个非常大的文件 (3TB) 从一个外部驱动器复制到另一个外部驱动器。这可能需要(由于带宽较低)很多天。
因此,我想在必须中断复制并在重新启动后恢复复制时做好准备。从我读过什么我可以用
rsync --append
为此(rsync版本> 3)。关于国旗的两个问题--append
:
我
rsync --append
用于全部调用? (对于第一次调用时不目标驱动器上的中断复制仍然存在,并且存在时的后续调用是目的地的副本被中断。)是否
rsync --append
为后续调用恢复复制过程没有读取所有已复制的数据? (换句话说:rsync 是否模仿add
式查找和读取操作?)
答案1
我是否用于
rsync --append
所有调用?
是的,您每次都会使用它(第一次没有任何可附加的内容,因此它是一个无操作;第二次和后续时间它被执行)。但--append
根本不使用除非你可以保证认为来源不变来自上一次运行(如果有),因为它关闭了对先前复制内容的检查。
是否
rsync --append
恢复后续调用...而不读取所有已复制的数据?
是的,但如果没有,rsync --partial
可能会先删除目标文件。
正确的调用应该是这样的:
rsync -a -vi --append --inplace --partial --progress /path/to/source/ /path/to/target
--progress
如果您不想看到进度指示器,并且-vi
您不太关心更多信息结果(您仍然会被告知成功或失败),则可以将其删除。您可能会看到-P
在其他情况下使用:这与此处相同--partial --progress
并且也可以用于此处。
--append
重新启动后继续,而不检查之前传输的数据--partial
保留部分传输的文件--inplace
强制更新到位
如果您对自第一次尝试以来源可能已更改有任何疑问rsync
,请使用(慢得多)--append-verify
而不是--append
。或者更好的是,--append
完全删除该标志并rsync
删除目标并再次开始复制它。
答案2
为此,您需要使用该--partial
选项。从联机帮助页:
--partial keep partially transferred files