scp
用于在本地主机和远程主机之间复制文件的加密方式。
补充说明
scp
命令用于在Linux下进行远程拷贝文件的命令,与类似的命令cp
不同,cp
只能在本机进行拷贝,不能跨服务器,并且scp
传输是加密的,可能会稍微影响速度。当你的服务器硬盘变为只读(read-only)系统时,使用scp
可以将文件移出来。此外,scp
占用资源非常少,不会增加太多系统负载,相比之下,rsync
就远远不及它。虽然rsync
比scp
稍快一些,但在小文件众多的情况下,rsync
会导致硬盘I/O非常高,而scp
基本上不会影响系统的正常使用。
语法
代码语言:javascript复制scp [选项] [参数]
选项
-1
:使用SSH协议版本1;-2
:使用SSH协议版本2;-4
:使用IPv4;-6
:使用IPv6;-B
:以批处理模式运行;-C
:使用压缩;-F
:指定SSH配置文件;-i
:从指定文件中读取传输时使用的密钥文件,该参数直接传递给SSH;-l
:指定带宽限制;-o
:指定要使用的SSH选项;-P
:指定远程主机的端口号;-p
:保留文件的最后修改时间、最后访问时间和权限模式;-q
:不显示复制进度;-r
:以递归方式复制。
参数
- 源文件:指定要复制的源文件;
- 目标文件:目标文件,格式为
user@host:filename
(其中,filename
为目标文件的名称)。
实例
从远程机器复制文件到本地目录:
代码语言:javascript复制scp root@10.10.10.10:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
从10.10.10.10机器上的/opt/soft/
目录中下载nginx-0.5.38.tar.gz
文件到本地/opt/soft/
目录中。
从亚马逊云复制OpenVPN到本地目录:
代码语言:javascript复制scp -i amazon.pem ubuntu@10.10.10.10:/usr/local/openvpn_as/etc/exe/openvpn-connect-2.1.3.110.dmg openvpn-connect-2.1.3.110.dmg
从10.10.10.10机器上下载openvpn
安装文件到本地当前目录。
从远程机器复制到本地:
代码语言:javascript复制scp -r root@10.10.10.10:/opt/soft/mongodb /opt/soft/
从10.10.10.10机器上的/opt/soft/
目录中下载mongodb
目录到本地的/opt/soft/
目录中。
上传本地文件到远程机器指定目录:
代码语言:javascript复制scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
指定端口2222:
代码语言:javascript复制scp -rp -P 2222 /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
复制本地/opt/soft/
目录下的文件nginx-0.5.38.tar.gz
到远程机器10.10.10.10的/opt/soft/scptest
目录。
上传本地目录到远程机器指定目录:
代码语言:javascript复制scp -r /opt/soft/mongodb root@10.10.10.10:/opt/soft/scptest
上传本地目录/opt/soft/mongodb
到远程机器10.10.10.10上的/opt/soft/scptest
目录中。