#1 楼
从本地计算机:rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage
从具有非标准ssh端口的本地计算机:
rsync -chavzP -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path
或从远程主机,假设您确实想以这种方式工作并且您的本地计算机正在SSH上侦听:
请参见
man rsync
,以获取我常用开关的说明。 评论
命令的解释:explainshell.com/…
–麻袋
14年8月16日在6:42
哇,explainshell网站真棒。
– gosukiwi
2015年1月8日在22:59
@cmcdragonkai:确实,本地主机必须正在运行ssh服务器,并且可以被远程主机访问。这是我选择第一种解决方案而不是第二种解决方案的原因之一。
–Johnsyweb
15年2月22日在20:00
与尾部反斜杠同步时要小心。 Johnnysweb给出的命令将在/ path / to / local / storage中创建一个名为copy的目录。像这样/ path / to / local / storage / copy。如果那是您想要的好。但是,更常见的情况是您要将远程目录的内容复制到本地目录中。然后,您将执行/ path / to / copy /将内容放置在目录/ path / to / local / storage内,而无需创建本地副本目录。
–章
2015年10月21日在5:22
我是来这里执行rsync命令的,而我离开了explainshell.com。谢谢@beefsack!
–相位
17-2-23在6:56
#2 楼
如果您具有SSH访问权限,则无需先进行SSH再复制,只需从目标位置使用安全复制(SCP)。scp user@host:/path/file /localpath/file
通配符是支持,因此
scp user@host:/path/folder/* /localpath/folder
将复制该文件夹中的所有远程文件。如果要复制多个目录,则复制一个目录。
note -r将也复制所有子文件夹和内容。
评论
为什么要使用scp而不是rsync?此外,请注意您的外壳程序不会尝试使用单引号(')来扩展user @ host:/ path / folder / *。
–Johnsyweb
2012年2月1日19:37
我发现从目标位置更容易使用scp。...本质上,它是通过ssh复制文件,但不必首先建立ssh连接。
–特钦
2012年2月2日在4:30
我知道什么是scp,这不是我的问题。为什么不使用rsync?这就是问题所要的,不需要建立的SSH会话,并且通常比scp更快,更高效。
–Johnsyweb
2012年2月2日在4:49
请记住,scp遵循符号链接,而不是复制它们。这可能会导致复制超出您的预期,并导致符号链接丢失(它们会变成普通的文件夹/文件)。
–孟丹
2014年1月26日上午10:59
Mondane的回复正是我找到此帖子的原因。通常,我对所有内容都使用scp,但是我需要保留服务器之间的权限和符号链接。而且,速度差异很大(不列颠哥伦比亚我的新手自己肯定先爬)。
– kyle
2014年5月1日13:30
评论
因为您可以直接从本地计算机进行rsync。哦,是的,我可以。我现在看到其他答案。谢谢。
这是(Web)开发的常见任务,并且有很好的答案。我不明白为什么它仍然关闭。
我认为@ d.raev指的是该问题已被关闭,成为离题的话题(如果我没记错的话,我标记为将该问题迁移到SuperUser,我认为它更合适),而不是没有被接受的答案。仍然……很高兴在所有这些时间都接受了我的回答。 :-)
@markstewie没有不好的感觉,这是一个很好的问题,它对我很有帮助(似乎也有很多其他问题),但是这种“封闭”状态使它看起来不值得信任,因此我希望对此有所注意。