linux-tutorial/docs/linux/cli/scp.md
Zhang Peng 18d2a58725 update
2020-03-10 22:54:15 +08:00

2.9 KiB
Raw Blame History

scp

加密的方式在本地主机和远程主机之间复制文件

补充说明

scp 命令 用于在 Linux 下进行远程拷贝文件的命令,和它类似的命令有 cp不过 cp 只是在本机进行拷贝不能跨服务器,而且 scp 传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system 时,用 scp 可以帮你把文件移出来。另外scp 还非常不占资源不会提高多少系统负荷在这一点上rsync 就远远不及它了。虽然  rsync 比 scp 会快一点但当小文件众多的情况下rsync 会导致硬盘 I/O 非常高,而 scp 基本不影响系统正常使用。

语法

scp(选项)(参数)

选项

-1使用ssh协议版本1
-2使用ssh协议版本2
-4使用ipv4
-6使用ipv6
-B以批处理模式运行
-C使用压缩
-F指定ssh配置文件
-iidentity_file 从指定文件中读取传输时使用的密钥文件例如亚马逊云pem此参数直接传递给ssh
-l指定宽带限制
-o指定使用的ssh选项
-P指定远程主机的端口号
-p保留文件的最后修改时间最后访问时间和权限模式
-q不显示复制进度
-r以递归方式复制。

参数

  • 源文件:指定要复制的源文件。
  • 目标文件:目标文件。格式为user@hostfilename(文件名为目标文件的名称)。

实例

从远程复制到本地的 scp 命令与上面的命令雷同,只要将从本地复制到远程的命令后面 2 个参数互换顺序就行了。

从远处复制文件到本地目录

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 到本地目录

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 安装文件到本地当前目录来。

从远处复制到本地

scp -r root@10.10.10.10:/opt/soft/mongodb /opt/soft/

从 10.10.10.10 机器上的/opt/soft/中下载 mongodb 目录到本地的/opt/soft/目录来。

上传本地文件到远程机器指定目录

scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
# 指定端口 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目录。

上传本地目录到远程机器指定目录

scp -r /opt/soft/mongodb root@10.10.10.10:/opt/soft/scptest

上传本地目录/opt/soft/mongodb到远程机器 10.10.10.10 上/opt/soft/scptest的目录中去。