系统中的文件传输
前言
- 系统中文件传输实验需要两台虚拟机
- 本次演示的实验以及后续的实验使用rhel7_node1和rhel8_node1两台虚拟机
- rhel7_node1和rhel8_node1相当于两台电脑哈
- rhel7_node1设置的网络IP为192.168.43.10
- rhel8_node1设置的网络IP为192.168.43.11
- windows中VWware15中新建的虚拟机默认情况下5分钟进行锁屏,影响实验效率,设置不锁屏步骤如下:
一.文件传输命令(scp&rsync)
1.scp命令
scp 本地文件 远程主机用户@远程IP:远程主机目录 | 相当于文件上传,将自己主机上的文件上传到远程主机 |
---|---|
scp 远程主机用户@远程IP:远程主机目录 本地文件 | 相当于文件下载 ,将远程主机文件下载到本机上 |
实验思路:
- 两台虚拟机已经配置完毕,相互可以实现网络通信
- rhel7_node1主机远程连接rhel8_node1,也就是在企业7虚拟机中可以直接操作企业8.(即同一个虚拟机中可以看到两个虚拟机的情况)
- 企业7中打开两个终端,一个查看rhel7_node1主机,一个查看rhel8_node1主机的情况
- 在rhel7_node1中建立实验素材 (桌面创建westos文件和westosdir目录)
- 测试文件传输,使用上传和下载命令,在rhel8_node1中查看结果
- 参数-p 没有进度条显示,scp默认会显示进度条
- 参数 -r 传输目录
实验过程:
易错点:
- 根目录/ 有普通用户家目录和root
- root是超级用户家目录
- 超级用户家目录中有Desktop 等
- 根目录/ ,是就相当于conputer,有mnt ,dev,root,home…
2.rsync命令
rsync命令的使用方法和scp很类似!
rsync 本地文件 远程主机用户@远程IP:远程主机目录 | 相当于上传 |
---|---|
rsync 远程主机用户@远程IP:远程主机目录 本地文件 | 相当于下载 |
rsync命令常见参数
-q | 静默方式,不显示进度条 |
---|---|
-r | 复制目录 |
-l | 复制链接 |
-o | 复制拥有者 |
-g | 复制拥有组 |
-t | 复制时间戳 |
-p | 复制权限 |
-D | 复制设备文件 |
实验思路:
1. 保证实验环境的纯净,删除/mnt中的文件
2. 7中ssh远程连接控制8 并监控/mnt ,在7中可以实现在8中监控 watch -n 1 ls -lR /mnt
3. 开始准备实验素材
(1) 7中 /mnt中建立5个文件 touch /mnt/file{1..5}和创建目录
(2)chmod 777 /mnt/* 修改文件和目录权限
(3)chown westos:westos /mnt/* 修改所有人和所有组
(4)7中 /mnt中建立链接 ln -s /mnt/file1 /mnt/file
(5)知识扩充:设备文件/dev/pts/
4.测试实验
5.监视企业八的/mnt 目录,以上传为例,查看各个参数的作用,看看什么参数传输什么内容
实验过程:
易错点:
- /mnt和/mnt/区别
/mnt | 复制目录本身和文件内容 |
---|---|
/mnt/ | 只复制了文件过去 |
3.scp&rsync命令的区别
- scp&rsync命令的区别:scp是复制命令,rsync是远程同步命令
- /mnt/ 目录对于scp来说,都是复制/mnt 整个目录
- /mnt/ 目录对于rsync来说,只复制了目录内的文件内容。理解:/mnt/表示此目录下的文件,而rsync是远程同步命令,目标主机存在/mnt目录,则不再复制这个目录了,直接只复制文件了
- rsync命令是增量检测,若目标主机有相同文件,那么不会再复制
- rsync 第二和第三次时间远远小于第一次,因为只检测有没有这个文件的时间!
- scp优点: 加密 不增加磁盘输出负载
实验思路
为了证明rsync命令不复制远程主机已经存在的文件
1.首先设置免密登陆。原因:计算时间时,会计算输入密码的时间,为了对比实验效果,设置免密登陆,对比具有说服力
免密登陆步骤:
(1)生成公钥和私钥
(2)上传公钥到远程主机
(3)即可免密登陆
2.企业7中生成文件。此处采用指定大小建立文件。
dd if=/dev/zero of=/mnt/file1 bs=1M count=10
dd if=/dev/zero of=/mnt/file2 bs=1M count=20
dd if=/dev/zero of=/mnt/file3 bs=1M count=30
dd:截取
if:inputfile
of:outputfile
bs:blocksize
count:块数
从/dev/zero截取指定大小的内容,存放在/mnt/file1 2 3 文件中
其中file1 2 3 若不存在,系统自动建立!
3.建立check_scp.sh和check_rsync.sh文件,将要执行的命令放进文件。
vim check_rsync.sh
check_rsync.sh文件中的内容:
time rsync -r /mnt root@192.168.0.11:/mnt
time rsync -r /mnt root@192.168.0.11:/mnt
time rsync -r /mnt root@192.168.0.11:/mnt
check_scp.sh 内容同理!
4.sh check_scp.sh
可以看出三条命令执行时间几乎相同,每次都复制
sh check_rsync.sh
第一次执行时间远超过第二和第三次,因为第2/3次只有检测时间
实验过程
在这里插入图片描述
二、文件压缩和解压
前言
- 当需要传输的文件较多时,传输的比较慢,需要引入打包、压缩和解压
- 传输速度快不快取决于文件大小,并不是看文件数量的多少
- 打包归档 tar
- 归档后文件的压缩
- tar命令压缩一步到位 以及 解压
1、文件归档(打包)
- 归档意思是把目录中多个文件变成一个文件,也称将多个文件打包成一个文件
- 传输速度快不快取决于文件大小,并不是看文件数量的多少
- 打包归档不是压缩,文件大小并没有改变
- 打包后虽然显示大小略小,是因为没有统计软连接的个数
- 若文件中有快捷方式,归档后统计略小,统计有误差
tar归档命令常用参数
c | 创建归档 |
---|---|
f | 指定文件名称 |
x | 解档 |
t | 查看 |
r | 向归档文件中添加文件 |
–get | 解档指定文件 |
–delete | 删除指定文件 |
C | 指定解档路径 |
实验思路:
1.返回到企业七中的桌面
2.将/etc 目录下的文件打包 取名字 etc.tar 到桌面
tar cf etc.tar /etc 打包归档到当前路径的/etc/目录中
tar tf etx.tar 查看归档目录
tar xf etc.tar 解档
tar xf etc.tar -C /mnt/ 解档到指定路径
tar rf etc.tar jiajiafiel 像归档包中添加文件 文件必须存在
tar tf etc.tar | tail -n 5 查看后五行
tar f etc.tar --get jiajiafiel 解档归档包中的指定文件
tar xf etc.tar --get jiajiafiel 解档归档包中的指定文件
tar f etc.tar --delete jiajiafiel 删除归档包中的指定文件
2.文件的压缩
- linux下的压缩格式一共有4种 : zip 压缩 、gzip压缩、bzip2压缩、xz压缩
- 压缩对于来说大文件更明显,压缩时间长效果更明显
- 每次压缩前后使用du -sh 目录名, 查看大小,进行对比
- 包括:先打包再压缩;打包的同时压缩,解压
- 通过对比4种压缩后的文件大小可知, zip 压缩 、gzip压缩、bzip2压缩、xz压缩的压缩效果越来越好 (压缩之后的大小越来越小,也就传输的越来越快)
- gzip压缩、bzip2压缩、xz压缩 压缩之后,归档的文件会消失!
- zip 压缩 需要加参数 -r 和 压缩之后的文件名。
zip -r 压缩后的文件名 归档文件
(1)zip压缩
格式:
zip -r xxx.tar.zip xxx.tar 将已经归档打包的文件压缩成前面的文件格式
unzip etc.tar.zip 将压缩好的文件进行解压缩
(2)gzip
格式:
gzip xxx.tar 直接压缩后面的打包文件
(3)bzip2
格式:
bzip2 xxx.tar 直接压缩打包的文件
(4)xz
格式:
xz xxx.tar 直接压缩打包文件
3.打包压缩一步到位
(1)gzip形式
格式:
tar zcf etc.tar.gz /etc/ 将/etc/ 目录中的文件压缩
tar zxf etc.tar.gz
(2)bzip2形式
格式:
tar jcf etc.tar.bz2 /etc/
tar jxf etc.tar.bz2
(3)xz形式
格式:
tar Jcf etc.tar.xz /etc/
tar Jxf etc.tar.xz
来源:CSDN
作者:HeyJY
链接:https://blog.csdn.net/baidu_40389082/article/details/104277645