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;
将本地文件传输到远程主机:
图 2 本地文件上传到远程主机 将远程主机文件,下载到本地主机:
图 3 远程主机文件加载到本地主机
二、rsync
2.1 rsync命令格式
格式 含义 rsync 文件 远程用户@远程主机IP:远程主机目录(文件) 将本地文件上传到远程主机 rsync 远程用户@远程主机IP:远程主机文件(目录) 文件路径 将远程主机文件(目录)拷贝到当前主机 2.2 rsync参数
参数 意义 -r 复制文件 -l 复制链接 -p 复制权限 -t 复制时间戳 -o 复制拥有者 -g 复制拥有组 -D 复制设备文件 (1)实验素材创建:
图 4 rsync 实验素材创建 (2)rsync含参的传输
图 5 rsync 两种传输方式
图 6 rsync 含参的传输
图 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]
图 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
图 9 实验运行脚本的内容 结果运行:
check_scp.sh
图 10 scp运行时间 check_rsync.sh
图 11 rsync运行时间 【注】real为真实时间;user 进程在用户cpu中的执行事件;sys为系统在执行命令事消耗的时间。
比较结论:
因为scp不管目标主机是否存在所要传输的文件,都会进行整个文件的传输,而rsync在传输过程中首先会检测是否存在相同的文件(目录)名,若存在相同,则直接跳过,不再进行传输。
三、文件归档压缩
3.1 tar 文件归档
参数 效果 c 创建归档文件 f 指定文件命名 x 解档 t 查看 r 向归档文件中添加指定文件 --get 解档归档中的指定文件 --delete 删除归档中的指定文件 -C 指定解档路径 图 12 tar命令运行方式
图 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格式解压 图 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 格式归档解压 图 15 归档并压缩
上述为Linux下权文件传输的基本学习,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用!
即使“长假”,也是提升自己的最好时间。加油!