如何使用scp
将文件夹从远程复制到本地主机?
我使用ssh
登录我的服务器
然后,我想将远程文件夹foo
复制到本地/home/user/Desktop
。
如何实现这一目标?
答案 0 :(得分:4368)
scp -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
来自man scp
(参见online manual)
-r递归复制整个目录
答案 1 :(得分:276)
要充分利用 scp ,您需要完成以下步骤:
然后,例如,如果您有〜/ .ssh / config :
Host test
User testuser
HostName test-site.com
Port 22022
Host prod
User produser
HostName production-site.com
Port 22022
您将免于输入密码并简化 scp 语法,如下所示:
scp -r prod:/path/foo /home/user/Desktop # copy to local
scp -r prod:/path/foo test:/tmp # copy from remote prod to remote test
此外,您将能够使用远程路径完成:
scp test:/var/log/ # press tab twice
Display all 151 possibilities? (y or n)
<强>更新强>
要启用远程bash-completion,您需要在<source>
和<target>
主机上安装bash-shell,并正确运行bash-completion。有关更多信息,请参阅相关问题:
How to enable autocompletion for remote paths when using scp?
SCP filename tab completion
答案 2 :(得分:176)
将所有内容从本地位置复制到远程位置(上传)
scp -r /path/from/destination username@hostname:/path/to/destination
将所有内容从远程位置复制到本地位置(下载)
scp -r username@hostname:/path/from/destination /path/to/destination
xxxx
自定义端口号码
scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination
从当前目录复制远程到本地
scp -r username@hostname:/path/from/file .
帮助:
-r
递归复制所有目录和文件/
的完整位置,pwd
scp
将替换所有现有文件hostname
将是主机名或IP地址-P portnumber
注意:由于防火墙中不允许使用端口,自定义端口有时无效,因此请确保防火墙允许自定义端口进行传入和传出连接
答案 3 :(得分:46)
我一直使用的是:
scp -r username@IP:/path/to/server/source/folder/ .
即可。 (点):表示current folder
。所以从服务器复制并粘贴到此处。
IP :可以是125.55.41.311
之类的IP地址,也可以是ns1.mysite.com
之类的主机。
答案 4 :(得分:28)
最好先在远程服务器上压缩目录:
tar czfP backup.tar.gz /path/to/catalog
其次,从远程下载:
scp user@your.server.example.com:/path/to/backup.tar.gz .
最后,解压缩文件:
tar -xzvf backup.tar.gz
答案 5 :(得分:21)
如果您有一个可以从远程位置下载的文件,如果您不太关心安全性,请尝试将scp默认加密(Triple-DES)更改为类似&#39; blowfish& #39;
这将大大减少文件复制时间。
scp -c blowfish -r user@your.server.example.com:/path/to/foo /home/user/Desktop/
答案 6 :(得分:19)
答案 7 :(得分:17)
典型情况,
scp -r -P port username@ip:/path-to-folder .
用样本解释,
scp -r -P 27000 abc@10.70.12.12:/tmp/hotel_dump .
其中,
port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
答案 8 :(得分:11)
如果您遇到&#34;身份验证失败太多&#34; ,请指定您已添加到服务器ssh服务器的确切SSH密钥:
scp -r -i /path/to/local/key user@remote.tld:/path/to/folder /your/local/target/dir
答案 9 :(得分:5)
我不知道为什么但是我不得不在源服务器指令之前使用本地文件夹。使它工作
scp -r . root@888.888.888.888:/usr/share/nginx/www/example.org/