Linux目录:scp命令

news2024/12/23 10:01:07

目录

  • 1 scp命令
    • 1.1简介
    • 1.2命令说明
    • 1.3 实例
      • 1、从本地复制的远程
      • 2、从远程复制到本地
      • 3、-r:复制目录
      • 4、 -p:保留原文件的修改时间,访问时间
      • 5、-P:指定传输数据的端口
      • 6、扩展:修改ssh默认端口

1 scp命令

1.1简介

scp 是 secure copy 的缩写, scp 是一个基于ssh协议实现不同Linux服务器之间的文件和目录拷贝的命令。

scp命令是基于rcp命令的

SCP命令会对所有传输的数据进行加密,以保障数据传输的安全性。

在使用SCP命令进行文件传输时,需要指定源文件的位置,目标服务器的IP地址以及目标路径。如果需要传输整个文件夹,还需要额外添加参数-r进行递归操作。同时,目标服务器会要求进行身份验证,验证通过后,文件传输才会开始。

1.2命令说明

使用:scp [-346ABCOpqRrsTv] [-c cipher] [-D sftp_server_path] [-F ssh_config]
[-i identity_file] [-J destination] [-l limit] [-o ssh_option]
[-P port] [-S program] source … target
常用参数:

  • -4:scp时只能使用IPv4地址
  • -6:scp时只能使用IPv6地址
  • -B:选择批处理模式(禁止询问密码或密码短语)。
  • -C:允许压缩,将文件在传输过程中进行压缩,以节省传输时间和带宽
  • -s:使用SFTP协议而不是scp协议
  • -D sftp_server_path:在使用-s指定的协议时,连接到本地SFTP服务器地址
  • -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh
  • -i identify_file:选择从中读取用于公钥身份验证的身份(私钥)的文件
  • -o ssh_ssh_option:用于向ssh传递选项,如:IdentityFile
  • -P port:用于指定传输端口,如果ssh的端口改变,需要在此处指定
  • -p:保留原文件的修改时间,访问时间
  • -q:不显示传输进度条
  • -r:递归复制整个目录

1.3 实例

1、从本地复制的远程

# scp localfile remote_ip:remote_dir
scp a1 192.168.92.100:/root

# scp localfile remote_ip:remote_file
# 在复制的同时还修改了文件名
# 远程服务器有同名文件时会覆盖
scp a1 192.168.92.100:/root/aaa

# scp localfile remote_user@remote_ip:remote_file
scp a1 root@192.168.92.100:/root

# scp localfile remote_hostname:remote_file
scp a1 com01:/root/yyy

# 下面的远程服务器
root@com01:~# ll a1 aaa sss yyy
-rw-r--r-- 1 root root 82 Feb 21 09:27 a1
-rw-r--r-- 1 root root 82 Feb 21 09:25 aaa
-rw-r--r-- 1 root root 82 Feb 21 09:29 sss
-rw-r--r-- 1 root root 82 Feb 21 09:34 yyy

注意:

  • 1.远程复制时有同名文件时会覆盖
  • 2.在向远程服务器复制文件时,如果不指定远程用户名,默认会传输给当前用户名相同的用户

在这里插入图片描述

  • 3.向指定目标地址时,既可以是目标服务器的IP也可以主机名

2、从远程复制到本地

从远程服务器复制本地只需要把目标地址和源地址修改一下即可

# 复制到本地目录下
scp con01:/root/a1 .
scp con01:/root/a1 ./df

3、-r:复制目录

######### 本地服务器
root@con01:~# ls haproxy-2.8.5
addons       CHANGELOG     examples  LICENSE      reg-tests  tests
admin        CONTRIBUTING  haproxy   MAINTAINERS  scripts    VERDATE
BRANCHES     dev           include   Makefile     src        VERSION
BSDmakefile  doc           INSTALL   README       SUBVE

scp -r haproxy-2.8.5 com01:/root/
scp -r haproxy-2.8.5/ com01:/root/
# 以上两种写法都可
# 如果不加 -r 选项会报错:haproxy-2.8.5: not a regular file

#######远程服务器
root@com01:~# ls haproxy-2.8.5/
addons       CHANGELOG     examples  LICENSE      reg-tests  tests
admin        CONTRIBUTING  haproxy   MAINTAINERS  scripts    VERDATE
BRANCHES     dev           include   Makefile     src        VERSION
BSDmakefile  doc           INSTALL   README       SUBVERS
root@com01:~#

4、 -p:保留原文件的修改时间,访问时间

####### 本地服务器
root@con01:~# stat b1
  File: b1
  Size: 6               Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d      Inode: 786447      Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/   smile)   Gid: ( 1000/   smile)
Access: 2024-02-21 09:48:28.317809644 +0000
Modify: 2024-02-21 09:46:29.587905113 +0000
Change: 2024-02-21 09:47:42.221070217 +0000
 Birth: 2024-02-21 09:46:29.587905113 +0000

scp b1 com01:/root/
scp -p b1 com01:/root/bb

# 从下面的内容可以看出保留原文件的修改时间,访问时间
####### 远程服务器
root@com01:~# stat b1
  File: b1
  Size: 6               Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d      Inode: 788380      Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-02-21 09:52:37.981073498 +0000
Modify: 2024-02-21 09:52:37.981073498 +0000
Change: 2024-02-21 09:52:37.981073498 +0000
 Birth: 2024-02-21 09:52:37.981073498 +0000
root@com01:~# stat bb
  File: bb
  Size: 6               Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d      Inode: 788381      Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2024-02-21 09:48:28.000000000 +0000
Modify: 2024-02-21 09:46:29.000000000 +0000
Change: 2024-02-21 09:52:46.465445105 +0000
 Birth: 2024-02-21 09:52:46.449444403 +0000
root@com01:~#

如果不清楚stat命令可以参考我的这篇文章:Linux命令:stat命令

5、-P:指定传输数据的端口

scp -P 13222 b1 com01:/root/bb
# 这个主要是ssh的端口,如果ssh端口改变了,此处访问会改变

6、扩展:修改ssh默认端口

# 修改ssh的配置文件,并重启即可
vim /etc/ssh/sshd_config
# 修改sftp上传文件端口
Port 13222

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1461032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在Shopee平台上选择爆款商品:借鉴爆款属性的有效策略

在当今激烈竞争的电商市场中,想要在Shopee平台上取得成功,卖家需要精心选择潜在的热销产品。借鉴爆款商品的属性是一种行之有效的策略,能够帮助卖家快速找到市场上的热门商品。通过分析市场趋势、竞品表现、社交媒体趋势等多方面因素&#xf…

单片机学习笔记---红外遥控(外部中断)

目录 红外遥控简介 硬件电路 基本发送与接收 NEC编码​​​​​​​ 遥控器键码 复习外部中断和定时器 红外遥控简介 红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工…

String字符串,FastJson常用操作方法

JSON字符串操作 1、创建配置环境 # 引入测试包testImplementation group: org.springframework.boot, name: spring-boot-starter-test, version: 2.2.6.RELEASE # 创建测试类RunWith(SpringRunner.class)SpringBootTestpublic class JsonTest {Testpublic void test(){Syste…

13.Qt 文件的读和写,样式表文件的读用

目录 前言: 技能: 内容: 1. 界面 2.信号槽 ①浏览按键 ②保存按键 ③加载样式按键 参考: 前言: 上一篇文章说明了如何弹窗选取文件并在Qlabel中显示文件内容 12.QT文件对话框 文件的弹窗选择-QFileDialog 这篇…

Gitlab CI 报错: /usr/bin/bash: line 137: kubectl: command not found

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【 Maven 】花式玩法之多模块项目

目录 一、认识Maven多模块项目 二、maven如何定义项目的发布策略 2.1 版本管理 2.2 构建配置 2.3 部署和发布 2.4 依赖管理 2.5 发布流程 三、使用Jenkins持续集成Maven项目 四、总结 如果你有一个多模块项目,并且想将这些模块发布到不同的仓库或目标位置&…

机器学习基础(四)非监督学习的进阶探索

导语:上一节我们详细探索监督学习的进阶应用,详情可见: 机器学习基础(三)监督学习的进阶探索-CSDN博客文章浏览阅读296次,点赞13次,收藏11次。监督学习作为机器学习的一个主要分支,…

34.仿简道云公式函数实战-数学函数-PRODUCT

1. PRODUCT函数 函数使所有以参数形式给出的数字相乘并返回乘积。 2. 函数用法 PRODUCT(number1, [number2], …) 3. 函数示例 PRODUCT(数量, 单价) 4. 代码实战 首先我们在function包下创建math包,在math包下创建ProductFunction类,代码如下&…

x86与arm架构区别

前言 我们经常讨论的芯片的X86架构和ARM架构,那么他们的的区别什么呢?其实俩种都是主流的两种计算机处理器架构(CPU)架构,X86架构的CPU是PC服务器行业的老大,ARM架构的CPU则是移动端的老大。X86架构和arm架…

如何在Shopee 上选择热销商品?shopee应该在哪选品

在如今激烈竞争的电商市场中,如何通过精准的选品策略提升在Shopee平台上的销售业绩成为卖家们关注的焦点。Shopee作为一个蓬勃发展的电商平台,提供了多种资源和工具来帮助卖家做出明智的选品决策。通过深入了解这些渠道和策略,卖家们可以更好…

云服务器ECS价格表出炉——阿里云

2024年阿里云服务器租用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服…

Redis 有哪些架构模式?讲讲各自的特点

单机版模式 特点:简单 问题: 1、内存容量有限 2、处理能力有限 3、无法高可用。 主从复制 Redis 的复制(replication)功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服…

Linux基础(vim、常用指令介绍)

Linux基础 1、目录结构2、vi和vim3、常用指令运行级别找回密码帮助指令时间日期指令搜索查找文件目录操作磁盘管理指令压缩和解压缩 4、组管理和组权限用户操作指令权限 1、目录结构 Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”&a…

挑战杯 基于LSTM的天气预测 - 时间序列预测

0 前言 🔥 优质竞赛项目系列,今天要分享的是 机器学习大数据分析项目 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/po…

Vue状态管理库-Pinia

一、Pinia是什么? Pinia 是 Vue 的专属状态管理库,它允许支持跨组件或页面共享状态,即共享数据,他的初始设计目的是设计一个支持组合式API的 Vue 状态管理库(因为vue3一个很大的改变就是组合式API),当然这…

设计师必看!哪个云渲染平台便宜?

渲染100 溜云库 渲云 平均价格 9.27 9.37 9.51 Camera007 5.81 6.1 4.7 Camera008 18.66 17…

Laravel02 路由基本概念和用法 给视图传递请求参数

Laravel02 路由基本概念和用法 1. 路由的基本概念2. 给视图传递请求参数 1. 路由的基本概念 routes文件夹下的web.php是用来定义路由规则的。 自己定义一个路径 2. 给视图传递请求参数 在laravel里使用一个辅助函数request来快速获取请求参数

Socket通信---Python发送数据给C++程序

0. Problems 很多时候实现某种功能,需要在不同进程间发送数据,目前有几种主流的方法,如 让python和C/C程序互相发送数据,其实有几种方法: 共享内存共享文件Socket通信 在这里只提供Socket通信的例程,共享…

C语言读取 ini 配置文件,修改/添加键值对

C语言读取 ini 配置文件,修改/添加键值对 C语言读取 ini 配置文件,对section中的键值对进行修改/添加,如果section不存在,则在末尾将新的section/key/value 添加进去。 一、了解什么是INI文件? ini 文件是Initializ…

2022蓝帽杯取证初赛

检材:https://pan.baidu.com/s/1ibOdxyCWeC5x0DQKjwcz7w?pwdvg6g 目录 手机取证1、627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?(答案参考格式:19201080)2、姜总的快递单号是多少?&#xff0…