Linux基础之文件传输优化

一、实验环境

实验中需要两台主机,并且保证这两台主机之间是可以通信的。
两台主机的IP分别为:
yang:172.25.254.217
workstation:172.25.254.117
在这里插入图片描述
用ssh命令在主机workstation中登录主机yang在这里插入图片描述

二、scp命令

1、scp命令用法

scp   本地文件     远程主机用户@远程主机ip:远程主机目录    ##把本地文件传输到远程主机
scp   远程主机用户@远程主机ip:远程主机目录     本地文件    ##把远程主机上的文件传输到本地
scp -r 本地目录   远程主机用户@远程主机ip:远程主机目录     ##把本地目录传输到远程主机
scp -r 远程主机用户@远程主机ip:远程主机目录   本地目录     ##把远程主机上的目录传输到本地
scp -q                                                  ##不显示传输过程

2、实验

(1) scp 把本地文件传输到远程主机

scp test root@172.25.254.217:/mnt/

在这里插入图片描述
(2) scp 把远程主机中的文件传输到本地

scp root@172.25.254.217:/mnt/test_yang .

在这里插入图片描述
(3) scp -r 把本地目录传输到远程主机

scp -r testdir root@172.25.254.217:/mnt/

在这里插入图片描述
(4) scp -q 不显示传输过程

scp -q test root@172.25.254.217:/mnt/

在这里插入图片描述

三、rsync命令

1、rsync命令的用法

rsync   文件      远程用户@远程用户ip:远程主机目录
rsync   远程用户@远程用户ip:远程主机目录   文件路径
rsync 
       -r		##复制目录
       -l		##复制链接
       -p		##复制权限	
       -t		##复制时间戳
       -o		##复制拥有者
       -g		##复制拥有组
       -D		##复制设备文件

2、实验

(1)实验环境
在yang中:

watch -n 1 ls -lR /mnt

在workstation中:

touch /mnt/file{1..5}
chmod 777 /mnt/*
useradd yang
chown yang.yang /mnt/*
ln -s /mnt/file1 /mnt/file

在这里插入图片描述
在这里插入图片描述
(2)rsync -r 同步目录目录

rsync -r /mnt root@172.25.254.217:/mnt

注意:
/mnt :表示同步目录本身和目录中的文件
/mnt/ :表示只同步目录中的文件
在这里插入图片描述
(3)rsync -l 同步链接链接

rsync -rl /mnt root@172.25.254.217:/mnt

在这里插入图片描述
(4)rsync -p 同步权限

rsync -rlp /mnt root@172.25.254.217:/mnt

在这里插入图片描述
(5)rsync -o 同步用户

rsync -rlpo /mnt root@172.25.254.217:/mnt

在这里插入图片描述
(6)rsync -g 同步用户组

rsync -rlpog /mnt root@172.25.254.217:/mnt

在这里插入图片描述
(7)rsync -t 同步时间

rsync -rlpogt /mnt root@172.25.254.217:/mnt

在这里插入图片描述
注意: -t 会同步文件的时间为创建文件时的时间,但是两个主机本身的时间差会导致同步后的时间显示不完全相同,有一定的时间差。(若两个主机的时间完全相同,则显示的时间戳相同)
(8)rsync -D 同步设备文件

rsync -rD /dev/pts root@172.25.254.217:/mnt

在这里插入图片描述

四、scp命令和rsync命令的对比

1、实验素材
(a)在workstation中建立文件

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=块的个数

在这里插入图片描述
(b)创建测试脚本

vim check_scp.sh
vim check_rsync.sh

注意: 脚本内容见下面图片。
2、分别运行两个脚本,比较scp命令和rsync命令运行时间
(a)scp命令运行时间
在这里插入图片描述
可以发现scp命令三次执行的sys时间几乎相同
(b)rsync命令运行时间
在这里插入图片描述
可以发现rsync命令三次执行的sys时间,后两次时间明显小于第一次
(3)对比
scp命令直接复制,不管文件是否已经存在;
rsync命令先做检测,如果文件已经存在,则检测后不再复制。
但scp也有它的优点:在执行时不占用磁盘,不增加磁盘负担;可以加密。

五、文件的归档压缩

1、文件归档

tar 
	c		##创建
	f		##指定文件名称
	x		##解档
	t		##查看
	r		##向归档文件中添加文件
	--get		##解档指定文件
	--delete	##删除指定文件
	-C		##指定解档路径

(1)tar cf

tar cf etc.tar /etc/

在这里插入图片描述
注意: tar只归档,不压缩。
(2)tar tf

tar tf etc.tar

在这里插入图片描述
(3)tar rf

tar rf etc.tar test

在这里插入图片描述
(4)tar xf

tar xf etc.tar

在这里插入图片描述
(5)tar --get

tar f etc.tar --get test

在这里插入图片描述
(6)tar --delete

tar f etc.tar --delete test

在这里插入图片描述
(7)tar -C

tar xf etc.tar -C /mnt

在这里插入图片描述

2、文件压缩

压缩格式有四种:zip、gzip、bzip2、xz

压缩格式 压缩命令 解压命令
zip zip -r etc.tar.zip etc.tar unzip etc.tar.zip
gzip gzip etc.tar gunzip etc.tar.gz
bzip2 bzip2 etc.tar bunzip2 etc.tar.bz2
xz xz etc.tar unxz etc.tar.xz

在这里插入图片描述
在这里插入图片描述
用 du -sh 命令可以分别看出归档文件的大小以及不同压缩文件的大小,可以发现压缩能力:zip < gzip < bzip2 < xz

3、tar+压缩/解压

tar+压缩/解压只支持三种格式:gzip、bzip2、xz

压缩格式 压缩 解压
gzip tar zcf etc.tar.gz /etc tar zxf etc.tar.gz
bzip2 tar jcf etc.tar.bz2 /etc tar jxf etc.tar.bz2
xz tar Jcf etc.tar.xz /etc tar Jxf etc.tar.xz

(1)tar+压缩
在这里插入图片描述
(2)tar+解压
在这里插入图片描述

发布了15 篇原创文章 · 获赞 3 · 访问量 685

猜你喜欢

转载自blog.csdn.net/weixin_42006882/article/details/104286544
今日推荐