Linux系统中的文件传输

目录

    • 实验环境
    • 1. scp
    • 2.rsync
      • 2.1 rsync命令
      • 2.2 rsync与scp的区别
          • 2.2.1 rsync与scp对比实验
            • (1) 实验素材
            • (2)实验执行
      • 2.3 rsync参数
    • 3.tar
      • 3.1 tar相关参数
      • 3.2 用法
    • 4. 压缩
      • 4.1 zip
      • 4.2 gzip
      • 4.3 bzip2
      • 4.4 xz
      • 4.5 tar+压缩
          • 4.5.1 gzip格式(z)
          • 4.5.2 bzip2格式(j)
          • 4.5.3 xz格式(J)

实验环境

要求:两台主机在同一网段,可以通信
主机A(Redhat企业8):192.168.1.19
主机B(Redhat企业7):192.168.1.29

1. scp

文件上传命令: 【scp】+【 本地文件】 +【 远程用户@远程主机IP:远程主机目录】
文件下载命令:【scp】+【远程用户@远程主机IP:远程主机文件】+【本地目录】
scp参数:

  • 【-r】 复制目录
  • 【-q】 传输文件时不显示进度

示例:
示例①:主机B把文件test 复制给远程主机A
Linux系统中的文件传输_第1张图片
示例②:在主机B上把远程主机A的文件复制到本地
Linux系统中的文件传输_第2张图片
示例③:主机B把westos文件复制给主机A,不显示进度
Linux系统中的文件传输_第3张图片在这里插入图片描述
示例④:主机B把目录复制给主机A
在这里插入图片描述
Linux系统中的文件传输_第4张图片

2.rsync

2.1 rsync命令

rsyncy用法和scp类似
上传文件:【rsync】+【文件】+【远程用户@远程主机ip:远程主机目录】
下载文件:【rsync】+【远程用户@远程主机ip:远程主机文件】+【本地目录】

2.2 rsync与scp的区别

rsync在复制时,会检测是否已经存在相同的文件,如果有,则不会复制;
scp总是会执行复制动作,有相同文件,则复制后覆盖

2.2.1 rsync与scp对比实验
(1) 实验素材

在主机B中截取3个文件到/mnt目录下,大小分别为10M,20M,30M ;通过复制/mnt目录的时间,来比较scp与rsync命令的区别
Linux系统中的文件传输_第5张图片
②:我们在传输文件时,需要输入远程主机的密码,手动输入密码的时间会造成实验结果误差,因此我们需要在主机B上设置对主机A免密登录
Linux系统中的文件传输_第6张图片
Linux系统中的文件传输_第7张图片
③:编写check_scp.sh,check_rsync.sh脚本,分别执行三次检测scp和rsync传输时间的指令
在这里插入图片描述
Linux系统中的文件传输_第8张图片
Linux系统中的文件传输_第9张图片

(2)实验执行

①:执行check_scp.sh脚本
Linux系统中的文件传输_第10张图片
②:将scp复制到主机A的/mnt文件删除,纯净实验环境,执行check_rsync.sh脚本
Linux系统中的文件传输_第11张图片
两次实验效果的对比,说明scp发生了三次复制动作;而rsync只有第一次进行文件复制

2.3 rsync参数

在传输文件时,会忽略很多东西,比如不会复制文件的权限,时间,链接等到远程主机中
Linux系统中的文件传输_第12张图片
Linux系统中的文件传输_第13张图片
用rsync命令的相关参数可以对被忽略的内容进行复制

参数 作用
-r 复制目录
-l 不忽略链接
-p 不忽略权限
-t 不忽略时间戳
-g 不忽略拥有组
-o 不忽略拥有者
-D 不忽略快设备

示例:
示例1:在主机B中创建test目录,并在目录下创建一个链接,用-l 参数复制test目录给主机A,链接也会被复制
Linux系统中的文件传输_第14张图片
Linux系统中的文件传输_第15张图片
示例2:在主机B中创建linux目录,修改目录及目录下的文件权限为777,把linux目录传给主机A,文件的权限也一同被复制
Linux系统中的文件传输_第16张图片
Linux系统中的文件传输_第17张图片
示例3:主机B将/dev/pts文件传输给主机A,设备文件被忽略,不会对其进行复制
Linux系统中的文件传输_第18张图片
加上-D参数复制文件,/dev/pts目录中的设备文件也被复制到主机A中
在这里插入图片描述
Linux系统中的文件传输_第19张图片

3.tar

tar:可以将多个文件合并为一个文件,打包后的文件后缀为“tar”

3.1 tar相关参数

参数 解释
-c 建立一个压缩文件的参数指令(create 的意思)
-x 解开一个压缩文件的参数指令
-t 查看 tarfile 里面的文件
-z 是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j 是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v 压缩的过程中显示文件
-f 指定打包文件名
-p 使用原文件的原来属性
-P 可以使用绝对路径来压缩
【- -get】 解档指定文件
【- -delete】 删除指定文件
-C 指定解档路径

3.2 用法

示例1:把file1,file2,file3三个文件打包在test.tar文件中,并查看test.tar里的文件
Linux系统中的文件传输_第20张图片
示例2:为了观察实验效果,在示例1的基础上删除当前路径所有文件,除了打包好的tar文件;解档test.tar文件,过程中显示文件名
Linux系统中的文件传输_第21张图片
示例2:将tset.tar中的file1解档
在这里插入图片描述
示例3:将test.tar解档到/mnt目录下
Linux系统中的文件传输_第22张图片

4. 压缩

压缩是一种通过特定的算法来减小计算机文件大小的机制。这种机制是一种很方便的发明,尤其是对网络用户,因为它可以减小文件的字节总数,使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用空间。linux系统常用压缩格式有:zip , gzip, bzip2 , xz

4.1 zip

压缩文件:把etc.tar文件压缩,压缩后的文件变小
Linux系统中的文件传输_第23张图片
解压文件:把etc.tar.zip文件解压
Linux系统中的文件传输_第24张图片

4.2 gzip

压缩文件:压缩后的文件名后缀为gz
在这里插入图片描述
解压文件:
在这里插入图片描述

4.3 bzip2

压缩文件:压缩后的文件后缀为bz2
在这里插入图片描述
解压文件:
在这里插入图片描述

4.4 xz

压缩文件:压缩后的文件名后缀为xz
在这里插入图片描述
解压文件:
在这里插入图片描述

4.5 tar+压缩

4.5.1 gzip格式(z)

打包并压缩文件:
在这里插入图片描述
解压并解档文件:
Linux系统中的文件传输_第25张图片

4.5.2 bzip2格式(j)

打包并压缩文件:
Linux系统中的文件传输_第26张图片
解压并解档文件:
Linux系统中的文件传输_第27张图片

4.5.3 xz格式(J)

打包并压缩文件:
在这里插入图片描述
解压并解档文件:
Linux系统中的文件传输_第28张图片

你可能感兴趣的:(Linux)