恢复递归 scp 传输(使用 rsync?)

恢复递归 scp 传输(使用 rsync?)

我通过 scp 传输了几千个文件,每个文件约 1MB,在传输了大约 2k 个文件后,我的连接就断了。我想知道是否有办法恢复递归传输而无需重新开始。比如

$ scp -r [email protected]:/datafiles/ ./
... Happy Transfer ...
...     BREAK!     ...
$ rsync -P [email protected]:/datafiles/ ./
... Continue transf...

问题是,如果可能的话,我似乎无法使语法正确。有人能解释一下是否可以/如何做到这一点吗?

PS. 如果在 rsync 行中的“datafiles”后指定斜线,那么会传输目录还是其内容?我在 Google 上搜索时看到了相互矛盾的评论。

答案1

如果你正在从本地计算机 rsyncing 到远程主机,则可以这样做:

rsync -avzl -e ssh /directory/with/files/ [email protected]:/new/directory/

答案2

下面这行代码应该可以解决这个问题:

rsync --partial --progress --rsh=ssh -r[电子邮件保护]:/数据文件/./

我以前从未将它用于递归目录,但刚才我发送它时,它似乎按预期工作。

答案3

合并 kibitzer 和 Tyler 的答案对我来说最有效:

rsync --partial --progress -avzl -e ssh /directory/with/files/ [email protected]:/new/directory/

(递归 rsyncing 并显示每个文件的进度)

答案4

如果您仅添加“-r”,则列出的 rsync 命令将会起作用。但您很可能还需要“-a”和“-v”。

关于尾部斜线,[电子邮件保护]:/data/ 相当于 /data/*,换句话说,如果你添加一个斜杠,它会复制所有内容。但是[电子邮件保护]:/data 是目录本身(当然还有它的子文件夹)

相关内容