本文记录linux系统中文件传输的多种方式,留作备忘。linux中文件传输的方式有ftp,scp,rsync,rz,sz等,但各个工具的功能又有所区别;

  • FTP : FTP是文件服务器,可实现文件的上传下载,存储等功能,但本文不打算介绍ftp的使用。
  • scp: scp能够将不同主机的文件进行相互传输,使用简单方便。
  • rz : 用于linux与windows之间的文件上传
  • sz : 用于linux与windows之间的文件下载
  • rsync : rsync是文件同步工具,结合inotify可以实现文件的同步,备份功能。
  • scp介绍

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。scp在夸机器复制的时候为了提高数据的安全性,使用了ssh连接和加密方式,如果机器之间配置了ssh免密码登录,那在使用scp的时候密码都不用输入。

  scp的安装:文件传输的两端机器都需要安装

[root@yufu ~]# yum install openssh-clients -y

  命令格式:scp  [参数]  [本地主机文件路径]  [远程主机路径]

  参数选项:

-1  强制scp命令使用协议ssh1

-2  强制scp命令使用协议ssh2

-4  强制scp命令只使用IPv4寻址

-6  强制scp命令只使用IPv6寻址

-B  使用批处理模式(传输过程中不询问传输口令或短语)

-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p 保留原文件的修改时间,访问时间和访问权限。  (建议使用,传输时保留属性时间信息,否则会导致时间发生改变无法进行增量传输)

-q  不显示传输进度条。  (很适合crontab任务计划中使用)

-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的使用:将本地A主机文件复制到B主机: A:192.168.214.190    B:192.168.214.187

[root@localhost tmp]#scp -p ./files/yum.log 192.168.214.187:/tmp/demo/
The authenticity of host '192.168.214.187 (192.168.214.187)' can't be established.
RSA key fingerprint is SHA256:BwJdXsDA6F5976fKx1cSxkGJ9/uYYI4zVJ2rd+/Cvj0.
RSA key fingerprint is MD5:::8b::d2::c7:::::b3:4d:9d:dd:5a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.214.187' (RSA) to the list of known hosts.
root@192.168.214.187's password:
yum.log % .0KB/s :

  检查B主机文件:

[root@yufu demo]# ls
f3.log yum.log
[root@yufu demo]# ll
总用量
-rw-r--r--. root root 3月 : f3.log
-rw-------. root root 3月 : yum.log

  将远程主机复制到本地

[root@localhost files]#scp -p 192.168.214.187:/tmp/demo/f3.log /tmp/files/
root@192.168.214.187's password:
f3.log % .0KB/s :
[root@localhost files]#ls
f3.log ff.txt yum.log

 复制目录

[root@localhost tmp]#scp -rp ./files/ 192.168.214.187:/tmp/demo
root@192.168.214.187's password:
f3.log % .0KB/s :
yum.log % .0KB/s :
ff.txt % .3KB/s :
[root@localhost tmp]#

  检查远程主机目录

[root@yufu demo]# tree
.
└── files
├── app
├── f3.log
├── ff.txt
└── yum.log directories, files
  • rz  sz (lrzsz)

   rz  sz指令可以实现linux和windows之间的文件传输,但要求在windows客户端要安装Xshell或SecureCRT远程连接工具。

rz指令和sz指令是一对上传与下载的指令。它们的软件包名为lrzsz。

  rz  sz指令使用很简单,执行rz 指令,远程连接工具会弹出windows文件选择窗口,只要选择要上传的文件即可

  工具的安装: 

yum install lrzsz -y

  文件上传: 

 

  文件下载:

  • rsync

rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。rsync可以实现scp的远程拷贝,cp的本地拷贝、rm删除和"ls -l"显示文件列表等功能。关于rsync的使用将单独写文章学习介绍。

linux几种文件传输方式的更多相关文章

  1. Linux之间的文件传输方式

    大数据集群经常涉及文件拷贝,我在学习大数据时总结了几种方式 三台主机:192.168.10.100.192.168.10.101.192.168.10.102有一个一样的用户:swcode 做过映射关 ...

  2. Linux下常用的文件传输方式介绍与比较

    参考链接:http://mingxinglai.com/cn/2014/03/copy-file-in-linux/ 本文介绍了linux之间传输文件的几种方式,并通过具体实验测试了几种文件传输方式之 ...

  3. Linux 上的常用文件传输方式介绍与比较

    ftp ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输. FTP 协议允许数据在不同文件系统的主机之间 ...

  4. Linux上常用的文件传输方式以及比较

    tp ftp 命令使用文件传输协议(File Transfer Protocol, FTP)在本地主机和远程主机之间或者在两个远程主机之间进行文件传输. FTP 协议允许数据在不同文件系统的主机之间传 ...

  5. 转: Linux 上的常用文件传输方式介绍与比较

    from:  https://www.ibm.com/developerworks/cn/linux/l-cn-filetransfer/ ftp ftp 命令使用文件传输协议(File Transf ...

  6. Linux下几种文件传输命令

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  7. Windows&Linux文件传输方式总结

    在渗透过程中,通常会需要向目标主机传送一些文件,来达到权限提升.权限维持等目的,本篇文章主要介绍一些windows和Linux下常用的文件传输方式. Windows 利用FTP协议上传 在本地或者VP ...

  8. Linux下几种文件传输命令 sz rz sftp scp

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  9. [原创] Linux下几种文件传输命令 sz rz sftp scp介绍

    Linux下几种文件传输命令 sz rz sftp scp介绍 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等 ...

随机推荐

  1. web.xml中如何设置配置文件的加载路径

    web应用程序通过Tomcat等容器启动时,会首先加载web.xml文件,通常我们工程中的各种配置文件,如日志.数据库.spring的文件等都在此时被加载,下面是两种常用的配置文件加载路径,即配置文件 ...

  2. python中深复制和浅复制区别

    在python中,对象赋值实际上是对象的的引用,当创建一个对象,然后把它赋值给另外一个变量的时候,python没有拷贝这个对象,而只是拷贝了这个对象的引用,多以就出现了浅复制,即复制后原对象改变后,复 ...

  3. Java多线程与并发——线程生命周期和线程池

    线程生命周期:  线程池:是预先创建线程的一种技术.线程池在还没有任务到来之前,创建一定数量的线程,放入空闲队列中,然后对这些资源进行复用.减少频繁的创建和销毁对象. java里面线程池的顶级接口是E ...

  4. 《从0到1学习Flink》—— Apache Flink 介绍

    前言 Flink 是一种流式计算框架,为什么我会接触到 Flink 呢?因为我目前在负责的是监控平台的告警部分,负责采集到的监控数据会直接往 kafka 里塞,然后告警这边需要从 kafka topi ...

  5. Chapter 18 MySQL NDB Cluster 7.3 and NDB Cluster 7.4渣翻

    Table of Contents 18.1 NDB Cluster Overview      18.2 NDB Cluster Installation      18.3 Configurati ...

  6. Cmder 简明使用说明

    简介 Cmder is a software package created out of pure frustration over the absence of nice console emul ...

  7. 北航oo作业第三单元小结

    一.梳理JML语言的理论基础 1.jml的注释结构 jml注释语言的每一行都以@作为开始,若是块注释,则需要在注释块的首尾使用/*@ 与@*/ 2.jml的表达式体系 1.原子表达式 表达式可以看作是 ...

  8. js重载的实现

    在JavaScript高级程序设计书中看到 ECMAScript函数中不能想传统意义上那样实现重载.而在其他语句中(Java)中,可以为一个函数编写两个定义,只要两个定义的签名(接受的参 数的类型和数 ...

  9. 如何避开JavaScript浮点数计算精度问题(如0.1+0.2!==0.3)

    不知道大家在使用JS的过程中有没有发现某些浮点数运算的时候,得到的结果存在精度问题:比如0.1 + 0.2 = 0.30000000000000004以及7 * 0.8 = 5.60000000000 ...

  10. EBS应用重启

    重启系统应用 cd $ADMIN_SCRIPTS_HOME ./adstpall.sh apps/apps ./adstrtal.sh apps/apps 在重启应用时,可能会出现并发管理器未启动的情 ...