Linux系统中的文件传输优化

试验环境配置

首先我们先进行试验环境的配置;本次试验环境的配置如下:

本次试验需要两台连同的主机,进行试验,并做如下设置:

Linux系统中的文件传输优化
图 1 实验环境配置

首先先通过hostnamectl set-hostname 更改两台主机名称,后我们通过ssh 服务,在rhtl_7中,使主机rhtl_8与rhtl_7显示在一台主机中,方便实验结果的观察。

一、scp

1.1 格式

格式 作用
scp 本地文件 远程主机用户@远程主机IP:远程主机目录 将本地文件传输到元层主机
scp 远程主机用户@远程主机IP:远程主机文件 本地目录 将远程主机文件复制到本机目录中

1.2 参数

参数 结果
-r 复制文件目录及目录下所有文件
-q 静默传输,不显示传输进度

【注】1.所用的实验素材建立:建立文件touch file{1..3};mkdir filrdir{1..3};

           2.实验环境的设置:为了方便观察结果在rhtl_8中:watch -n 1 ls -l /root/Desktop;

将本地文件传输到远程主机:

Linux系统中的文件传输优化
图 2  本地文件上传到远程主机

将远程主机文件,下载到本地主机:

Linux系统中的文件传输优化
图 3 远程主机文件加载到本地主机

 

二、rsync

2.1 rsync命令格式

格式 含义
rsync 文件  远程用户@远程主机IP:远程主机目录(文件) 将本地文件上传到远程主机
rsync 远程用户@远程主机IP:远程主机文件(目录)  文件路径 将远程主机文件(目录)拷贝到当前主机

2.2 rsync参数

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

(1)实验素材创建:

Linux系统中的文件传输优化
图 4 rsync  实验素材创建

(2)rsync含参的传输

Linux系统中的文件传输优化
图 5  rsync  两种传输方式

 

Linux系统中的文件传输优化
图 6 rsync  含参的传输

 

Linux系统中的文件传输优化
图 7 rsync 参数D的比较

2.3 rsync与scp的比较

2.3.1 建立实验素材

(1)我们主要做的是时间的测试,因为在scp传输过程中需要输入密码,会对时间测定产生较大的影响,所以我们先在rhtl_7中对rhtl_8做免密登录:ssh-******;ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

Linux系统中的文件传输优化
图 8 做实验环境中的免密登录

(2)创建测试素材:

    创建传输的文件目录:

    dd id=/dev/zero of=/mnt/file1 bs=1M count=10(dd=截取,if=inputfile,of=outputfile bs=blocksize count=块的个数)

    dd id=/dev/zero of=/mnt/file2 bs=1M count=20

    dd id=/dev/zero of=/mnt/file3 bs=1M count=30

    创建运行的脚本:

    check_scp.sh 和 check_rsync.sh

Linux系统中的文件传输优化
图 9  实验运行脚本的内容

结果运行:

check_scp.sh

Linux系统中的文件传输优化
图 10  scp运行时间

check_rsync.sh

Linux系统中的文件传输优化
图 11  rsync运行时间

【注】real为真实时间;user 进程在用户cpu中的执行事件;sys为系统在执行命令事消耗的时间。

比较结论:

因为scp不管目标主机是否存在所要传输的文件,都会进行整个文件的传输,而rsync在传输过程中首先会检测是否存在相同的文件(目录)名,若存在相同,则直接跳过,不再进行传输。

三、文件归档压缩

3.1 tar 文件归档

参数 效果
c 创建归档文件
f 指定文件命名
x 解档
t 查看
r 向归档文件中添加指定文件
--get 解档归档中的指定文件
--delete 删除归档中的指定文件
-C 指定解档路径
Linux系统中的文件传输优化
图 12  tar命令运行方式

 

Linux系统中的文件传输优化
图 13  tar 单独处理目标文件方式

 

3.2 文件的压缩

方式 命令 意义
zip zip -r 归档文件名称.tar.zip  归档文件 zip格式压缩
unzip 归档文件名称.tar.zip zip格式解压
gzip gzip 归档文件名称.tar gzip格式压缩
gunzip 归档文件名称.tar.gz gzip格式解压
bzip2 bzip2 归档文件名称.tar bzip2格式压缩
bunzip2 归档文件名称.tar.bz2 bzip2格式解压
xz xz 归档文件名称.tar xz格式压缩
unxz 归档文件名称.tar.xz xz格式解压
Linux系统中的文件传输优化
图 14  四种压缩格式

并且由上图我们可以看出,四种压缩方式的效率,由小到大为:zip < gzip < bzip2 < xz

3.3归档和压缩

方式 命令 含义
gzip tar zcf 归档文件名.tar.gz 归档文件 gzip 格式归档+压缩
tar zxf 归档文件名.tar.gz 归档文件 gzip 格式归档解压
bzip2 tar jcf 归档文件名.tar.bz2 归档文件 bzip2 格式归档+压缩
tar jxf 归档文件名.tar.bz2 归档文件 bzip2 格式归档解压
xz tar Jcf 归档文件名.tar.xz 归档文件 xz 格式归档+压缩
tar Jxf 归档文件名.tar.xz 归档文件 xz 格式归档解压
Linux系统中的文件传输优化
图 15  归档并压缩

上述为Linux下权文件传输的基本学习,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用!

即使“长假”,也是提升自己的最好时间。加油!