scp
scp 是一种在本地主机和远程主机之间复制文件的加密方式。
补充说明
scp
命令用于在 Linux 下进行远程拷贝文件的操作。相对于类似的 cp
命令,scp
可以跨服务器进行文件拷贝,并且传输过程是加密的。虽然可能会稍微降低一些速度,但当你的服务器硬盘变为只读时,使用 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
:从指定文件中读取传输时使用的密钥文件(例如亚马逊云的 pem 文件),此参数直接传递给 SSH。-l
:指定宽带限制。-o
:指定使用的 SSH 选项。-P
:指定远程主机的端口号。-p
:保留文件的最后修改时间,最后访问时间和权限模式。-q
:不显示复制进度。-r
:以递归方式复制。
参数
源文件
:指定要复制的源文件。目标文件
:目标文件。格式为user@host: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
代码语言:javascript复制# 指定端口 2222
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
目录中。