jia*_*103 1 linux rsync file-transfer tar
我需要中断并重新启动 Linux 复制操作。做这个的最好方式是什么?
我目前正在将数据从一台 Debian PC 复制到另一台。我通过以下方式开始此操作sshfs
,tar
但没有使用要求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 &
Run Code Online (Sandbox Code Playgroud)
远程盒子是系统救援 CD 的一次性启动,没有本地操作系统,并且位于我的防火墙内,因此我不太关心以 root 身份登录,除非有人提出其他意见。
这比我最初预期的时间要长,因此我需要中断操作以关闭远程盒电源几分钟。
当我重新启动它时,我知道我无法恢复 tar 操作;相反,是否有类似rsync
命令的东西可以让我轻松地从中断处恢复并完成传输,包括在中断操作时完成正在进行的文件的拙劣传输?
完成后,我计划运行此rsync
答案中的命令来验证传输是否成功完成,除非有人建议这是多余的:
local$ rsync -niaHc /path/to/local/data/to/copy/ /path/to/remote-sdb1/path/to/local/data/to/copy
Run Code Online (Sandbox Code Playgroud)
(如帖子中所述,我需要小心以 . 结尾第一个文件夹名称/
。)
确切地说,您不能,因为源目录中的文件可能与原来的不同。即 rsync 将下载文件的较新版本。
通常,要恢复它,请重复相同的命令。
除非您使用了--partial
,否则不完整的文件不会留在您的目录中,因此只需重复相同的命令即可 - 已经传输的文件不会第二次传输,而未传输的文件将被传输。
顺便说一句,为了确保我最终不会将源的第二个副本发送到目标中,我总是使用的是我首先确保创建目标目录。然后使用:
rsync <options> source/. dest/.
Run Code Online (Sandbox Code Playgroud)
这样,(假设您正在使用某种递归选项),它将确保将源内容复制到目标内容中。
归档时间: |
|
查看次数: |
20749 次 |
最近记录: |