如何使用 rsync 恢复中断的传输

如何使用 rsync 恢复中断的传输

我需要中断并重新启动 Linux 复制操作。最好的方法是什么?

我目前正在将数据从一台 Debian PC 复制到另一台。我通过以下方式开始此过程sshfstar但没有使用要求sshfs,也不tar需要另一种可靠的方法:

local$ mkdir /path/to/remote-sdb1
local$ sshfs root@remote:/mnt/sdb1 /path/to/remote-sdb1
local$ tar cf - /path/to/local/data/to/copy | tar xf - -C /path/to/remote-sdb1 &

远程盒是系统救援 CD 的一次性启动,没有本地操作系统且位于我的防火墙内,因此我并不太担心以 root 身份登录,除非有人另有评论。

这比我最初预期的要花费更长的时间,所以我需要中断操作以关闭远程盒子的电源几分钟。

当我重新启动它时,我知道我无法恢复 tar 操作;相反,是否有类似rsync命令的东西可以让我轻松地从上次中断的地方恢复并完成传输,包括在我中断操作时完成正在进行的文件的失败传输?

完成后,我计划rsync回答以验证传输是否成功完成,除非有人建议这是多余的:

local$ rsync -niaHc /path/to/local/data/to/copy/ /path/to/remote-sdb1/path/to/local/data/to/copy

(正如帖子中所述,我需要小心以 . 结尾第一个文件夹名称/。)

答案1

你不能,确切地,因为源目录中的文件可能与原始文件不同。即 rsync 将下载文件的较新版本。

要恢复它,通常重复相同的命令。

除非您使用--partial,否则不完整的文件不会留在您的目录中,因此只需重复相同的命令 - 已经传输的文件将不会再传输第二次,而尚未传输的文件将被传输。

顺便说一句,为了确保不会将源文件的第二份副本发送到目标文件,我始终使用的方法首先确保已创建目标目录。然后使用:

rsync <options> source/. dest/.

这样,(假设您使用某些递归选项),它将确保将源内容复制到目标内容中。

相关内容