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

phy*_*ael 14 rsync scp recursion

我通过 scp 传输了数千个文件,每个大约 1MB,在前 2k 个文件左右之后我的连接中断了。我想知道是否有办法在不重新开始的情况下恢复递归传输。就像是

$ scp -r me@host.com:/datafiles/ ./
... Happy Transfer ...
...     BREAK!     ...
$ rsync -P me@host.com:/datafiles/ ./
... Continue transf...
Run Code Online (Sandbox Code Playgroud)

问题是如果可能的话,我似乎无法获得正确的语法。任何人都可以阐明是否/如何做到这一点?

附注。如果您在 rsync 行中的“datafiles”之后指定斜杠,是否会传输目录或其内容?我在谷歌搜索时看到了相互矛盾的评论。

小智 11

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

rsync --partial --progress --rsh=ssh -r me@host.com:/datafiles/ ./

我以前从未将它用于递归目录,但是当我刚刚给它发短信时,它似乎按预期工作。


小智 10

如果您正在从本地机器同步到远程主机,这将起作用:

rsync -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/
Run Code Online (Sandbox Code Playgroud)

  • `-l` 不是必需的。它由`-a`隐含 (3认同)
  • 如果你试图恢复一个大文件,这个选项可能很有用:`--partial --inplace --no-whole-file`。 (2认同)