Linux 几种文件传输方式

桃扇骨 2022-09-11 12:19 297阅读 0赞
  1. 本文记录linux系统中文件传输的多种方式,留作备忘。linux中文件传输的方式有ftpscprsyncrzsz等,但各个工具的功能又有所区别;
  • FTP : FTP是文件服务器,可实现文件的上传下载,存储等功能,但本文不打算介绍ftp的使用。
  • scp: scp能够将不同主机的文件进行相互传输,使用简单方便。
  • rz : 用于linux与windows之间的文件上传
  • sz : 用于linux与windows之间的文件下载
  • rsync : rsync是文件同步工具,结合inotify可以实现文件的同步,备份功能。

  • scp介绍

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

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

  1. [root@yufu ~]# yum install openssh-clients -y
  2. 命令格式:scp \[参数\]  \[本地主机文件路径\] \[远程主机路径\]

  参数选项:

  1. -1 强制scp命令使用协议ssh1
  2. -2 强制scp命令使用协议ssh2
  3. -4 强制scp命令只使用IPv4寻址
  4. -6 强制scp命令只使用IPv6寻址
  5. -B 使用批处理模式(传输过程中不询问传输口令或短语)
  6. -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
  7. -p 保留原文件的修改时间,访问时间和访问权限。 (建议使用,传输时保留属性时间信息,否则会导致时间发生改变无法进行增量传输)
  8. -q 不显示传输进度条。 (很适合crontab任务计划中使用)
  9. -r 递归复制整个目录。
  10. -v 详细方式显示输出。scpssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
  11. -c cipher cipher将数据传输进行加密,这个选项将直接传递给ssh
  12. -F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh
  13. -i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh
  14. -l limit 限定用户所能使用的带宽,以Kbit/s为单位。
  15. -o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
  16. -P port 注意是大写的P, port是指定数据传输用到的端口号
  17. -S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
  18. scp的使用:将本地A主机文件复制到B主机: A:192.168.214.190 B192.168.214.187
  19. [root@localhost tmp]#scp -p ./files/yum.log 192.168.214.187:/tmp/demo/
  20. The authenticity of host '192.168.214.187 (192.168.214.187)' can't be established.
  21. RSA key fingerprint is SHA256:BwJdXsDA6F5976fKx1cSxkGJ9/uYYI4zVJ2rd+/Cvj0.
  22. RSA key fingerprint is MD5:85:87:8b:17:d2:79:c7:91:11:46:78:b3:4d:9d:dd:5a.
  23. Are you sure you want to continue connecting (yes/no)? yes
  24. Warning: Permanently added '192.168.214.187' (RSA) to the list of known hosts.
  25. root@192.168.214.187's password:
  26. yum.log 100% 0 0.0KB/s 00:00
  27. 检查B主机文件:
  28. [root@yufu demo]# ls
  29. f3.log yum.log
  30. [root@yufu demo]# ll
  31. 总用量 0
  32. -rw-r--r--. 1 root root 0 3 31 22:38 f3.log
  33. -rw-------. 1 root root 0 3 31 22:36 yum.log
  34. 将远程主机复制到本地
  35. [root@localhost files]#scp -p 192.168.214.187:/tmp/demo/f3.log /tmp/files/
  36. root@192.168.214.187's password:
  37. f3.log 100% 0 0.0KB/s 00:00
  38. [root@localhost files]#ls
  39. f3.log ff.txt yum.log
  40. 复制目录
  41. [root@localhost tmp]#scp -rp ./files/ 192.168.214.187:/tmp/demo
  42. root@192.168.214.187's password:
  43. f3.log 100% 0 0.0KB/s 00:00
  44. yum.log 100% 0 0.0KB/s 00:00
  45. ff.txt 100% 5 7.3KB/s 00:00
  46. [root@localhost tmp]#
  47. 检查远程主机目录
  48. [root@yufu demo]# tree
  49. .
  50. └── files
  51. ├── app
  52. ├── f3.log
  53. ├── ff.txt
  54. └── yum.log
  55. 2 directories, 3 files
  • rz sz (lrzsz)

    1. rz sz指令可以实现linuxwindows之间的文件传输,但要求在windows客户端要安装XshellSecureCRT远程连接工具。
    2. rz指令和sz指令是一对上传与下载的指令。它们的软件包名为lrzsz

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

  工具的安装: 

  1. $ yum install lrzsz -y
  2. 文件上传: 

 

f326b762a89788b8852f1bb639bdd247.png

f687ccea4c79736b55f9b3899612b05c.png

  文件下载:

c9027c1ab8e3f4617deccfbe4c4470a3.png

  • rsync

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

发表评论

表情:
评论列表 (有 0 条评论,297人围观)

还没有评论,来说两句吧...

相关阅读

    相关 应用系统之间数据传输方式

    随着近年来SOA(面向服务技术架构)的兴起,越来越多的应用系统开始进行分布式的设计和部署。系统由原来单一的技术架构变成面向服务的多系统架构。原来在一个系统之间可以完成的业务流程

    相关 访问文件方式

    我们知道,读取和写入文件I/O操作都调用操作系统提供的接口,因为磁盘设备是由操作系统管理的,应用程序要访问物理设备只能通过系统调用的方式来工作。读和写分别对应read()和wr