远程Linux服务器到远程linux服务器目录复制.怎么样?

43 linux data-transfer

将目录(带有子目录和文件)从一个远程Linux服务器复制到另一个远程Linux服务器的最佳方法是什么?我已使用SSH客户端(如Putty)连接到两者.我有两个root访问权限.

Ycr*_*ros 63

我通常有两种方法,都使用ssh:

scp -r sourcedir/ user@dest.com:/dest/dir/
Run Code Online (Sandbox Code Playgroud)

或者,更强大和更快(在传输速度方面)方法:

rsync -auv -e ssh --progress sourcedir/ user@dest.com:/dest/dir/
Run Code Online (Sandbox Code Playgroud)

如果您想了解有关它们如何工作的更多详细信息,请阅读每个命令的手册页.


use*_*218 32

我会修改之前建议的回复:

rsync -avlzp /path/to/sfolder name@remote.server:/path/to/remote/dfolder
Run Code Online (Sandbox Code Playgroud)

如下:

-a(用于存档)暗示-rlptgoD所以上面的l和p是多余的.我还想包括-H,它复制硬链接.它不是-a的一部分,因为它很昂贵.所以现在我们有了这个:

rsync -aHvz /path/to/sfolder name@remote.server:/path/to/remote/dfolder
Run Code Online (Sandbox Code Playgroud)

你还必须小心尾随斜杠.你可能想要

rsync -aHvz /path/to/sfolder/ name@remote.server:/path/to/remote/dfolder
Run Code Online (Sandbox Code Playgroud)

如果希望源"sfolder"的内容出现在目的地"dfolder"中.如果没有尾部斜杠,将在目标"dfolder"中创建"sfolder"子目录.

  • 这个答案值得更多赞成,应该被接受。如果你喜欢它,唯一需要添加的是 `--progress`。 (2认同)

Ana*_*tts 9

rsync -avlzp/path/to/folder name@remote.server:/ path/to/remote/folder


Cod*_*ous 6

scp -r <directory> <username>@<targethost>:<targetdir>
Run Code Online (Sandbox Code Playgroud)


Fla*_*ame 5

登录一台机器

$ scp -r/path/to/top/directory user @ server:/ path/to/copy