Linux中SCP文件传输工具详解

在Linix中总是经常使用到不同服务器主机之间的文件传输需求,这个时候scp就成为我们的首选工具了。主流发行版的系统都是自带这个工具的,足以说明有必要研究一下。

命令参数

使用命令语法格式

scp [参数选项] [源文件] [目标地址]

scp [-1246BCpqrv] 操作的原文件 操作的目标文件

常见的参数如下:

参数含义
1强制scp命令使用协议ssh1 不常用
2强制scp命令使用协议ssh2 不常用
4强制scp命令使用IPv4
6强制scp命令使用IPv6
B以批处理模式运行
C大写的C 压缩传输 压缩后传输更快 但是压缩也需要时间
p保留原文件的修改时间、访问时间和访问权限
q不显示传输进度条
r递归传输整个目录
v显示详细的传输过程
P大写的P 指定端口号 用于非默认22端口的场景
i指定文件中读取传输时使用的SSH密钥
SCP文件传输案例

scp [参数选项] [源文件] [目标地址]

源文件和目标文件可以是本地的,也可以是远程的。

#本地格式
/xxx
#远程文件
[用户名@]主机IP:[文件路径]

本地文件传输到远程服务器,把redis.conf.txt 传输到192.168.0.45服务器上的/root/scpdemo2目录下:

scp redis.conf.txt root@192.168.0.45:/root/scpdemo2

从远程服务器传输到本地机器,把192.168.0.45服务器上的/root/scpdemo2目录的redis.conf.txt传输到本机/root/scpdemo目录下:

scp root@192.168.0.45:/root/scpdemo2/redis.conf.txt  /root/scpdemo

传输目录,如果目录文件路径是一个目录的话 需要加参数-r ,如下示例就是把本机redisdir目录整体传输192.168.0.45机器/root目录下:

scp -r  redisdir root@192.168.0.45:/root

综合示例

#指定端口
scp  -P 2222 -r  redisdir root@192.168.0.45:/root
#指定ssh rsa秘钥
scp  -i ~/.ssh/id_rsa -r  redisdir root@192.168.0.45:/root
#保留原文件的修改时间、访问时间和访问权限信息
scp  -p -r  redisdir root@192.168.0.45:/root
#显示详细传输信息
scp  -v -r  redisdir root@192.168.0.45:/root

掌握上述传输参数,工作中常用的传输需求应该没有太大问题了。

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值