Linux系统中的文件传输

实验环境

要求:两台主机在同一网段,可以通信
主机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系统中的文件传输
示例②:在主机B上把远程主机A的文件复制到本地
Linux系统中的文件传输
示例③:主机B把westos文件复制给主机A,不显示进度
Linux系统中的文件传输Linux系统中的文件传输
示例④:主机B把目录复制给主机A
Linux系统中的文件传输
Linux系统中的文件传输

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系统中的文件传输
②:我们在传输文件时,需要输入远程主机的密码,手动输入密码的时间会造成实验结果误差,因此我们需要在主机B上设置对主机A免密登录
Linux系统中的文件传输
Linux系统中的文件传输
③:编写check_scp.sh,check_rsync.sh脚本,分别执行三次检测scp和rsync传输时间的指令
Linux系统中的文件传输
Linux系统中的文件传输
Linux系统中的文件传输

(2)实验执行

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

2.3 rsync参数

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

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

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

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系统中的文件传输
示例2:为了观察实验效果,在示例1的基础上删除当前路径所有文件,除了打包好的tar文件;解档test.tar文件,过程中显示文件名
Linux系统中的文件传输
示例2:将tset.tar中的file1解档
Linux系统中的文件传输
示例3:将test.tar解档到/mnt目录下
Linux系统中的文件传输

4. 压缩

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

4.1 zip

压缩文件:把etc.tar文件压缩,压缩后的文件变小
Linux系统中的文件传输
解压文件:把etc.tar.zip文件解压
Linux系统中的文件传输

4.2 gzip

压缩文件:压缩后的文件名后缀为gz
Linux系统中的文件传输
解压文件:
Linux系统中的文件传输

4.3 bzip2

压缩文件:压缩后的文件后缀为bz2
Linux系统中的文件传输
解压文件:
Linux系统中的文件传输

4.4 xz

压缩文件:压缩后的文件名后缀为xz
Linux系统中的文件传输
解压文件:
Linux系统中的文件传输

4.5 tar+压缩

4.5.1 gzip格式

打包并压缩文件:
Linux系统中的文件传输
解压并解档文件:
Linux系统中的文件传输

4.5.2 bzip2格式

打包并压缩文件:
Linux系统中的文件传输
解压并解档文件:
Linux系统中的文件传输

4.5.3 xz格式

打包并压缩文件:
Linux系统中的文件传输
解压并解档文件:
Linux系统中的文件传输