scp命令——基于SSH协议远程文件复制

scp命令是英文词组secure copy的缩写,其功能是基于SSH协议的远程文件复制。由于数据是经过SSH协议加密传输的,因此会比HTTP和FTP更加安全。

scp命令可以在多个Linux系统之间通过网络进行文件复制,而cp命令只能在一个Linux系统内部进行文件复制。

scp命令可以上传文件,也可以下载文件,语法格式分别介绍如下:

(1)上传文件的语法格式如下:

bash 复制代码
scp [选项] 本地文件名 远程服务器信息:远程文件名

(2)下载文件的语法格式如下:

bash 复制代码
scp [选项] 远程服务器信息:远程文件名 本地文件名

其中的远程服务器信息包括登录远程服务器的账号和服务器主机名或IP地址等,其形式与邮箱格式相同,如下所示,若未指定远程登录用户名,则默认使用当前客户端的登录用户名。

复制代码
zhangsan@192.168.18.188

或者

zhangsan@hostname001

常用选项如下:

|--------|---------------------|
| 选项 | 含义 |
| -l | 设置宽带限制 |
| -o | 设置ssh服务选项 |
| -P | 设置远程主机的端口号 |
| -p | 保留文件的修改时间、访问时间和权限属性 |
| -B | 使用批处理模式 |
| -q | 静默执行模式 |
| -c | 使用指定密钥对传输文件进行加密 |
| -r | 递归处理所有子文件 -C 使用压缩模式 |
| -S | 设置加密传输时所使用的程序 |
| -F | 设置ssh配置文件路径 |
| -v | 显示执行过程详细信息 |
| -i | 从指定文件中读取传输文件的密钥 |

1、将本地文件上传至服务器指定目录

(1)示例1,保持原文件名不变,服务器远程连接用户名为当前客户机登录用户名

bash 复制代码
# 将本地文件file1上传到服务器的/data目录下,文件名不变
[root@node1 ~]# scp /opt/file1 218.0.0.44:/data/

Authorized users only. All activities may be monitored and reported.
root@218.0.0.44's password: 
file1                                                  100%   79   399.7KB/s   00:00

(2)示例2,上传并更名,服务器远程连接用户名指定为zhangsan

bash 复制代码
# 将本地文件file2上传到服务器的/data目录下,并更名为f2
[root@node1 ~]# scp /opt/file2 zhangsan@218.0.0.44:/data/f2

Authorized users only. All activities may be monitored and reported.
zhangsan@218.0.0.44's password: 
file2                                                  100%   74   368.6KB/s   00:00  

2、将本地目录上传至服务器的指定目录

上传目录必须使用选项-r。

bash 复制代码
# 将本地目录/opt下的所有文件及子目录上传至服务器的/data目录
[root@node1 ~]# scp -r /opt/* 218.0.0.44:/data/

Authorized users only. All activities may be monitored and reported.
root@218.0.0.44's password: 
file1                                                  100%   79   494.9KB/s   00:00    
file2                                                  100%   74   662.0KB/s   00:00    
make_hotpatch                                          100%   20KB  76.7MB/s   00:00 

3、将服务器上的文件下载至本地目录

服务器远程连接用户名指定为zhangsan,下载/data/file1至本机的/download目录

bash 复制代码
# 将服务器上的文件/data/file1下载至本地的/download目录下,并保持原文件名
[root@node1 ~]# scp zhangsan@218.0.0.44:/data/file1 /download/

Authorized users only. All activities may be monitored and reported.
zhangsan@218.0.0.44's password: 
file1                                                  100%   79   437.6KB/s   00:00 

4、将服务器上的目录下载至本地目录

下载目录必须使用选项-r。

bash 复制代码
# 将服务器上的/data/目录下载至本地目录下
[root@node1 ~]# scp -r 218.0.0.44:/data/ /download/

Authorized users only. All activities may be monitored and reported.
root@218.0.0.44's password: 
make_hotpatch                                          100%   20KB  68.1MB/s   00:00    
file1                                                  100%   79     1.0MB/s   00:00    
file2                                                  100%   74   923.3KB/s   00:00
相关推荐
是小胡嘛8 小时前
C++之Any类的模拟实现
linux·开发语言·c++
口袋物联9 小时前
设计模式之工厂模式在 C 语言中的应用(含 Linux 内核实例)
linux·c语言·设计模式·简单工厂模式
qq_4798754310 小时前
X-Macros(1)
linux·服务器·windows
笨笨聊运维11 小时前
CentOS官方不维护版本,配置python升级方法,无损版
linux·python·centos
jun_bai12 小时前
python写的文件备份网盘程序
运维·服务器·网络
Warren9812 小时前
Python自动化测试全栈面试
服务器·网络·数据库·mysql·ubuntu·面试·职场和发展
HIT_Weston12 小时前
39、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)
linux·前端·ubuntu
欢喜躲在眉梢里12 小时前
CANN 异构计算架构实操指南:从环境部署到 AI 任务加速全流程
运维·服务器·人工智能·ai·架构·计算
云飞云共享云桌面13 小时前
无需配置传统电脑——智能装备工厂10个SolidWorks共享一台工作站
运维·服务器·前端·网络·算法·电脑
福尔摩斯张13 小时前
《C 语言指针从入门到精通:全面笔记 + 实战习题深度解析》(超详细)
linux·运维·服务器·c语言·开发语言·c++·算法