Linux进阶之路————scp指令介绍与演示

引言

目前市场上很多终端软件都自带文件传输功能,且多为图形化界面,操作简单无脑。但是本着“指令最高端,拖拽贼JBLow”的原则,今天学习一下文件传输的命令:scp

操作演示

准备两台linux服务器 (我的是弄了两个CentOS 6 的虚拟机,安装参考《Linux——VMware虚拟机安装CentOS步骤》)

A:192.168.1.137(local)

B:192.168.1.129

操作:在A服务器上的创建一个文件,test.log,然后通过scp命令将test.log文件传输到B服务器上。

A服务器上的操作如下

B服务器上的操作如下

上面的操作是从A服务器(local)上传文件到B服务器,那么如果从B服务器上将文件下载下来,只需要将远程服务器的地址和路径与本地路径颠倒一下就可以了。

scp指令

参考《Linux scp命令》

Linux scp命令用于Linux之间复制文件和目录。它是secure copy的缩写,是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

基本语法

scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[user@]host1:]file1 [user@]host2:]file2

常用参数

-r  递归复制整个目录。如:

scp  -r  local_folder   remote_username@ip:remote_folder

简易写法

scp [可选参数] file_source file_target

参数说明

  • -1: 强制scp命令使用协议ssh1
  • -2: 强制scp命令使用协议ssh2
  • -4: 强制scp命令只使用IPv4寻址
  • -6: 强制scp命令只使用IPv6寻址
  • -B: 使用批处理模式(传输过程中不询问传输口令或短语)
  • -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
  • -p:保留原文件的修改时间,访问时间和访问权限。
  • -q: 不显示传输进度条。
  • -r: 递归复制整个目录。
  • -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
  • -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
  • -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
  • -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
  • -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
  • -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
  • -P port:注意是大写的P, port是指定数据传输用到的端口号
  • -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

总结

scp 命令的格式:scp [可选参数] file_source file_target

常用参数是 -r  递归复制整个文件夹( -r 在所有指令里都是递归操作的意思)

注意细节:

1)如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:

#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator

2)使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。举个例子,如果远程登录用户为 tom,此时希望把本地文件复制到远程的/root目录,那么操作将不会被允许。

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

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

相关文章

Mybatis源码分析第一天------Mybatis实用篇

Mybatis源码分析第一天------Mybatis实用篇 一切最基本的操作就是参考官方文档:https://mybatis.org/mybatis-3/zh/configuration.html 1、是什么 什么是 MyBatis? a、MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级…

深入理解Tomcat和Jetty源码之第一篇前奏知识

深入理解Tomcat和Jetty源码之第一篇前奏知识 这周开始对Tomcat和Jetty的源码和框架产生了浓厚的兴趣,接下来想记录一下学习Tomcat和Jetty源码的心得和体会,有兴趣的朋友可以关注一下,我主要以思维导图的方式来展现整体的学习思路~ 今天的整体…

Linux进阶之路————组管理与权限管理

引言 这篇博客将会总结一些关于组的概念和相关操作,以及文件的一些权限管理。 一、组的基本介绍 在前面的博文《Linux进阶之路————用户管理》已经有提到用户组的概念,实际上,组的概念并不局限于用户,文件和目录都有组的概念…

深入理解Tomcat和Jetty源码之第二篇servlet规范和servlet容器

深入理解Tomcat和Jetty源码之第二篇servlet规范和servlet容器 思维导图总览 这篇推送主要讲servlet的规范和什么是servlet容器? 1、先来讲讲servlet规范: 2、再用一个图来说明一下servlet容器是如何工作的 3、web应用 4、本节的重点,filter和…

JavaScript————FormData实现多文件上传

引言 星期四的时候,我遇到了一个文件上传的问题,与以往不同的是,这一次上传的是多个文件,而且涉及到了久违的javascript代码。 虽然最后实现的并不尽如人意,不过也算是完成了功能,接下来就把我发现的一些问…

深入理解Tomcat和Jetty源码之第三篇tomcat系统架构上:连接器是如何设计的

我们都知道Tomcat服务器是包括连接器和容器,​那他们内部具体是怎么实现的呢?今天让我们一起来学习一下~ 1、tomcat基础知识 2、tomcat和service的关系 3、tomcat的详细介绍(重点) 3.1、连接器 3.1.1、ProtocolHandler组件 3.1.2、…

Maven学习(一)————Maven技术概述

引言 在过去的项目开发中,存在很多实操性的痛点: 1、一个项目只通过一个巨大的java工程来开发,随着模块的增多,工程也变得异常庞大,不利于分工和管理。 2、过去需要的第三方 api 接口需要通过手动导包的形式&#x…

深入理解Tomcat和Jetty源码之第四篇tomcat系统架构上:容器是如何设计的

今天来介绍一下Tomcat的容器机制: 1、Tomcat的四种容器 2、容器示意图 3、责任链模式介绍 4、Tomcat如何确定请求是哪个Wrapper处理的 5、Tomcat的Context和servlet的ServletContext还有Spring的ApplicationContext有什么不同

Maven学习(二)————Maven核心概念(一)

引言 Maven 作为项目构建工具,学习成本并不大,但是如果搞不懂它的一些核心概念,使用起来还是不能特别得心应手。 Maven的核心概念包括以下这些: 1、约定的目录结构 2、POM 3、坐标 4、依赖 5、仓库 6、生命周期/插件/目…

Maven学习(三)————Maven核心概念(二)

引言 承接上一篇《Maven学习(二)————Maven核心概念(一)》,介绍 Maven 生命周期、插件、目标、继承、聚合等一些概念。 一、Maven 生命周期 1.1 理解 Maven 生命周期及主要构建过程 Maven 构建生命周期&#x…

Maven学习(四)————Eclipse 中的 Maven 工程

引言 创建一个 Maven 版 Hello World。 一、Eclipse 中 Maven 插件的准备工作 除了 JDK 和必须的 Eclipse 之外,还需要在 Eclipse 中设置Maven 相关的信息。这里有最重要的两项 maven 配置: 1.1 Maven Installations 说明:该项设置是指定…

数据结构与算法————稀疏数组

引言 数据压缩方面,我们往往可以通过稀疏数组来保存有效数据,节省存储空间。 一、稀疏数组的概念 当一个数组中大部分元素是0,或为同一个值的时候,可以使用稀疏数组来保存数组。 它是一个十分有效的存储结构,便于节…

Linux进阶之路————crond定时任务调度

引言 crond 的概念和 crontab 是不可分割的。crontab 是一个命令,而 crond 是Linux 下用来周期性执行某种任务或等待处理某些事件的守护进程,类似于 Windows 下的计划任务。 当装完操作系统之后,默认便会安装 crond 服务工具,并…

Maven配置_01

1 下载相应的Maven--->地址:http://maven.apache.org/download.cgi 2 将下载的压缩包解压到自己指定的文件夹 C:\OS\apache-maven-3.5.2 3 配置环境变量 3.1 此电脑-->鼠标右键-->属性-->高级系统设置-->环境变量 3.2 用户变量或者系统变量中选择 新建 输入…

Linux进阶之路————Linux磁盘分区与挂载

引言 对于Linux来说,无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录 / ,一个独立且唯一的文件结构,Linux 中每个分区都是用来组成整个文件系统的一部分。 Linux采用一种叫“载入”的处理方法&#xff…

Spring jndi连接数据库

Spring jndi连接数据库JNDI 即Java命名目录接口 Java Naming Dictory Interface Spring.xml配置文件 <bean name"dbsource1" class"org.springframework.jdbc.core.JdbcTemplate"><property name"jndi" value"java:comp/env/jdbc/…

Maven学习(五)————依赖的特性辨析

引言 在Maven 中&#xff0c;依赖有一些特性必须我们掌握&#xff0c;如依赖的传递性。 一、依赖的传递性 其实依赖的传递性非常好理解。 上图&#xff0c;如果 Maven 项目 B 已经依赖了 C &#xff0c;A 又依赖了 B&#xff0c;那么 A 不需要再在自己的pom 中重复引入 C 的…

ZXing生成二维码

pom.xml <!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.2</version></dependency> ​ ​<!-- ht…

Java NIO————NIO 简介

引言 Java NIO (New IO&#xff0c;或Non Blocking IO) 是从Java1.4 版本开始引入的一个新的 IO API&#xff0c;可以代替标准的Java IO API。 NIO与原来的IO有同样的作用和目的&#xff0c;但是使用的方式完全不同。 NIO支持面向缓冲区、基于通道的IO操作。NIO将以更加高效…

MySql主从同步最小配置

MySql主从同步最小配置 MySql配置文件配置window: my.ini centos: my.cnf主数据库配置 #配置数据库的唯一标识符,一般1位主库,从库为ip地址最后一位 server-id 1 #启用二进制日志,对应mysql-bin.xxxxx文件 log-bin mysql-bin #需要同步的数据库名 binlog-do-dbtest1 #不需要…