介绍
scp是 secure copy 的缩写,相当于cp命令 + SSH。它的底层是 SSH 协议,默认端口是22,相当于先使用ssh命令登录远程主机,然后再执行拷贝操作。
使用scp传输数据时,文件 和 密码 都是 加密 的,不会泄漏敏感信息。
scp主要用于以下三种复制操作:
- 本地上传文件到远端。
- 从远端下载文件到本地。
- 两个远程之间的文件传输。
更详细的用法参见:
https://github.com/wangdoc/ssh-tutorial/blob/main/docs/scp.md
上传
本地上传文件到远端
上传文件
在终端执行:
scp 本地文件路径 用户名@ip:远端保存目录
然后输入linux登录密码
例子:
scp /Users/mym/Desktop/python/docs-r2.0.zip root@192.168.0.100:/root
将本地的/Users/mym/Desktop/python/docs-r2.0.zip文件上传到ip是192.168.0.1的/root文件夹下
上传文件夹
在终端执行:
scp -r 本地文件夹路径 用户名@ip:远端保存目录
解释:
本地文件路径:可以有通配符
*,代表所有文件、文件夹然后输入linux登录密码
例子
scp -r /program/jdk1.8.0_202 root@hadoop3:/program
scp -r /program/* root@hadoop3:/program
通配符*,代表 /program/ 目录下所有文件、文件夹
常见错误
如果用ssh登录到linux,此时执行scp命令报错,提示SCP No such file or directory
因为当前登录到linux,scp后面的文件路径是mac电脑的,linux服务器当然找不到
下载
下载文件
将远端文件下载到本地,在终端执行:
scp 用户名@ip:远端文件路径 本地保存目录
然后输入linux登录密码
例子
scp root@192.168.0.100:/root/java8.py /Users/mym/Desktop/python/
下载文件夹
将远端文件夹下载到本地,在终端执行:
scp -r 用户名@ip:远端文件路径 本地保存目录
解释:
本地文件路径:可以有通配符
*,代表所有文件、文件夹然后输入linux登录密码
例子
scp -r root@hadoop1:/program/hadoop-3.0.3 /program
scp -r root@hadoop1:/program/* /program
通配符*,代表 /program/ 目录下所有文件、文件夹
两个远程之间的文件传输
在 本机,将 远程电脑A 的文件夹,发送给 远程电脑B
例子
scp -r root@hadoop1:/program/hadoop-3.0.3 root@hadoop3:/program/
scp -r root@hadoop1:/program/* root@hadoop3:/program/
通配符 *,代表 /program/ 目录下所有文件、文件夹