Linux基础篇之系统中的文件传输优化


实验环境:
rhel7IP:192.168.0.40
rhel8IP:192.168.0.41

scp命令

scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,且scp传输是加密的。另外,scp非常不占资源,不会提高多少系统负荷,使用时基本不影响系统正常使用。
语法

  • a.把本地文件复制到远程主机
    scp 本地文件 远程主机用户@远程主机IP:远程主机目录
  • b.把远程主机的文件复制到本地
    scp 远程主机用户@远程主机IP:远程主机目录 本地文件
    在rhel7建立实验素材并实验:把本地文件复制到远程主机
    1.在rhel7中建立westos文件,写入内容
    在这里插入图片描述

使用scp将westos文件复制到rhel8远程主机的/mnt/目录下
在这里插入图片描述
回到rhel8的/mnt目录下查看效果:

在这里插入图片描述
可见,westos文件从rhel7中成功传输过来。并且内容不变。
在这里插入图片描述
刚才的实验scp westos root@192.168.0.41:/mnt/中,scp后没有跟任何参数。
scp -q 为静默输出(不显示进度)
在这里插入图片描述
当传输目录时,不加参数不能正常传输:

在这里插入图片描述
使用scp -r进行目录的传输:
在这里插入图片描述
在这里插入图片描述
在rhel8的/mnt中建立实验素材rhel8file,内容如下
在这里插入图片描述
使用scp命令在rhel7中将rhel8file传输到本地:
在这里插入图片描述

rsync命令

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync只传送两个文件不同的部分,而不是每次都整份传送,因此速度相当快。但是当小文件众多的情况下,rsync会导致硬盘I/O非常高。

rsync命令和scp命令的对比:

  • 实验素材的建立
dd if=/dev/zero of=/mnt/file1 bs=1M count=10 ##dd=截取,if=inputfile of=outputfile bs=blocksize count=块的个数
dd if=/dev/zero of=/mnt/file2 bs=1M count=20
dd if=/dev/zero of=/mnt/file3 bs=1M count=30

使用time命令查看运行时间,并使用time scp -qr /mnt root@192.168.0.41:/mnt查看将rhel下/mnt的文件传输到rhel8下的/mnt的时间
创建脚本自动运行3次:
在这里插入图片描述

在这里插入图片描述
同样方法,写一个rsync的脚本运行3次查看运行时间,因为之前设定过密钥对,两台主机之间通过密钥认证,所以无时间误差。在运行之前记得将刚才复制过的文件删除!

在这里插入图片描述
在这里插入图片描述可以看到,scp的3次运行时间几乎相同。而rsync的3次运行时间,的第一次运行时间稍微长,第二次和第三次时间远远小于第一次系统运行时间,这是因为滴一滴在同步的过程中,远程主机没有对应文件,同步会复制本地文件到远程主机,第二次第三次因为目标文件已经存在,无需任何操作,所以时间远远小于第一次系统运行时间。
三次运行时间中:
real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
user时间是指进程在用户模式中的CPU执行时间,其他进程花费的时间和阻塞状态的时间没有计算在内。
sys时间是进程在内核模式中的CPU执行时间,代表进程使用系统调用所花费的CPU执行时间,这也是由进程执行而消耗的CPU执行时间。

rsync的用法

  • 将远程主机文件同步到本地
    rsync 远程用户@远程主机IP:远程主机目录 本地文件路径
  • 将本地文件同步到远程主机
    rsync 文件 远程用户@远程主机IP: 远程主机目录

rsync的常用参数

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

实验环境:在rhel7的/mnt下新建五个文件test{1…5}并将文件的所有人所有组改为kiosk,并设置满权限。
在rhel7中新打开一个shall,用watch -n 1建立监控查看远程主机rhel8 /mnt下文件的属性( ls -l),用ln -s为test2文件创建链接。

在这里插入图片描述

使用rsync -r /mnt root@192.168.0.41:/mnt将目录复制到远程主机,同步目录中的文件。
在这里插入图片描述
使用rsync -r /mnt/ root@192.168.0.41:/mnt ##只同步目录中的文件
在这里插入图片描述

rsync -rl /mnt/ root@192.168.0.41:/mnt  ##同步目录中的链接

在这里插入图片描述

rsync -rlp /mnt/ root@192.168.0.41:/mnt    ##同步目录中的权限

在这里插入图片描述

rsync -rlpt /mnt/ root@192.168.0.41:/mnt    ##同步时间戳

在这里插入图片描述

rsync -rD /dev/pts root@192.168.0.41:/mnt    ##同步设备文件

在这里插入图片描述

文件的归档压缩

当我们复制的文件太多时,比如将/etc下的文件复制到远程主机的/mnt目录下时,因为文件太多而导致文件复制的过程非常缓慢
在这里插入图片描述
如果我们能将目录中的文件变成一个文件效率就会变得比较高,这种方式叫做打包。

tar命令 (打包命令)

常用参数:

参数作用
c新建打包文件
f指定文件名称
x解档
t查看文件名
r向归档文件中添加文件
- -get解档指定文件
- -delete删除指定文件
-C指定解档路径

使用 tar cf etc.tat /etc将/etc进行打包到桌面上,原始大小为44m::
在这里插入图片描述
打包归档后大小为39m
在这里插入图片描述
前后大小不一样,但是大小实质性是没有改变的.因为/etc当中有许多文件为链接,而链接在du -sh里会被统计两次,而打包后的链接不会被统计。

我们可以通过双击打开进行查看里面的文件,也可以用命令去操作。

tar tf etc.tar

在这里插入图片描述
使用命令tar -rf etc.tar rhel8file将桌面上的rhel8file添加到etc.tar中:
在这里插入图片描述
使用tar f etc.tar --get rhel8file将指定的rhel8file取出
使用tar f etc.tar --delete rhel8file将指定的rhel8file删除
使用tarx f etc.tar在当前位置解档
使用tar f etc.tar -C /mnt指定解档路径为/mnt

文件的压缩

Linux中默认集成好的压缩格式有zip,gzip,bzip2,xz。

zip格式的压缩与解压缩

zip -r etc.tar.zip etc.tar 进行压缩:
在这里插入图片描述
可见,压缩后的大小为16m。
unzip etc.tar.zip 进行解压缩(在解压缩之前将原有的打包文件删除)
在这里插入图片描述

gzip格式的压缩与解压缩

gzip etc.tar  ##进行gzip格式的压缩 

在这里插入图片描述
可见,使用gzip格式压缩后的大小为12M。
使用 gunzip etc.tar.gz 进行解压缩,还原成tar格式的打包文件。

xz格式的压缩与解压缩

使用 xz etc.tar进行xz格式的压缩
在这里插入图片描述
可以看到,xz的压缩率最高,压缩后只有8M。
使用 unxz etc.tar.xz进行xz格式的解压缩。

bzip2格式的压缩与解压缩

使用 bzip2 etc.tar进行bzip2格式的压缩
在这里插入图片描述我们可以看到,使用bzip2格式压缩后大小只有10M。
使用bunzip2 etc.tar.bz2 进行bzip2格式解压缩。

打包+压缩

tar支持的压缩格式有 gzip bzip2和xz格式三种。
tar zcf etc.tar.gz /etc为打包压缩为gzip格式。
tar jcf etc.tar.bz2 /etc为打包压缩为bzip2格式。
tar Jcf etc.tar.bz2 /etc为打包压缩为xz格式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值