八、Linux系统中的文件传输优化

八、Linux系统中的文件传输优化

实验环境

两台可以通信的主机
A IP:192.168.0.108
B IP:192.168.0.109

8.1 文件传输

8.1.1 scp

格式:

  • scp   本地文件   远程主机用户@远程主机IP:远程主机目录
  • scp    远程主机用户@远程主机IP:远程主机目录    本地文件
命令 效果
scp -p 保留原文件的修改时间,访问时间,访问权限
scp -q 不显示传输进度条
scp -r 递归复制整个目录

例子1

[root@localhost Desktop]$ scp file [email protected]:/mnt #将B中file文件传输给A的/mnt
[root@localhost Desktop]$ scp -r dir [email protected]:/mnt  #将B中的目录dir传输给A的/mnt
[root@localhost Desktop]$ scp -q file [email protected]:/mnt  #将B中file文件传输给A的/mnt 不显示进度条

scp

8.1.2 rsync

格式

  • rsync   本地文件   远程主机用户@远程主机IP:远程主机目录
  • rsync    远程主机用户@远程主机IP:远程主机目录    本地文件
代码 效果
rsync -r 复制目录
rsync -l 复制链接
rsync -p 复制权限
rsync -t 复制时间戳
rsync -o 复制拥有者
rsync -g 复制拥有组
rsync -D 复制设备文件

例子

[root@localhost Desktop]$ rsync file [email protected]:/mnt #把file复制到A的/mnt
[root@localhost Desktop]$ rsync -r dir [email protected]:/mnt #把dir目录复制到A的/mnt
[root@localhost Desktop]$ rsync -ogt file [email protected]:/mnt # 复制拥有者,拥有组,时间戳

8.1.3 scp与rsync的比较

(1)实验素材:

  • B中建立文件
[root@localhost Desktop]$ dd if=/dev/zero of=/mnt/file1 bs=1M count=10 # dd=截取,if=inputfile,of=outputfile,bs=blocksize,count=快的个数
[root@localhost Desktop]$ dd if=/dev/zero of=/mnt/file2 bs=1M count=20 
[root@localhost Desktop]$ dd if=/dev/zero of=/mnt/file3 bs=1M count=30
  • 在主机之间建立免密登陆(在B上进行)
[root@localhost Desktop]$ ssh-keygen
[root@localhost Desktop]$ ssh-copy-id -i /root/.ssh/id_pub [email protected]
  • 创建测试脚本
[root@localhost Desktop]$ vim check_scp.sh # 检测scp的传输时间

scp

[root@localhost Desktop]$ vim check_rsync.sh #检测rsync的传输时间

rsync

  • 执行
    比较
    总结

  • scp是相当于复制,黏贴,如果有的话是覆盖,比较耗时间,不智能。

  • rsync是复制,如果有重复的文件,会直接跳过,而且他自己的算法优化。

  • scp是把文件全部复制过去,当文件修改后还是把所有文件复制过去,rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去。

8.2 文档归档-tar

tar

代码 效果
c 创建
f 指定文件名称
x 解档
t 查看
r 向归档文件中添加文件
- -get 解档指定文件
- -delete 删除指定文件
-C 指定解档路径
  • 例子
[root@localhost Desktop]$ tar cf etc.tar /etc/ #将/etc/下的文件打包并命名为etc.tar
[root@localhost Desktop]$ tar tf etc.tar #查看包里文件
[root@localhost Desktop]$ tar rf etc.tar file # 把文件file添加进归档里面
[root@localhost Desktop]$ tar xf etc.tar 解挡
[root@localhost Desktop]$ tar f etc.tar --get file # 从归档里把file文件解档
[root@localhost Desktop]$ tar f etc.tar --delete file # 从归档文件中把file文件删除
[root@localhost Desktop]$ tar xf etc.tar -C /mnt #指定解档路径为/mnt
  • 例子
    xiazai

8.3 文件的压缩(压缩程度逐渐增大)

8.3.1 zip

[root@localhost Desktop]$ zip -r etc.tar.zip etc.tar #压缩
[root@localhost Desktop]$ du -sh etc.tar.zip #查看压缩包大小
[root@localhost Desktop]$ unzip etc.tar.zip #解压

zip

8.3.2 gzip

[root@localhost Desktop]$ gzip etc.tar #压缩
[root@localhost Desktop]$ du -sh etc.tar.gzip #查看压缩包大小
[root@localhost Desktop]$ gunzip etc.tar.gz #解压

gzip

8.3.3 bzip2

[root@localhost Desktop]$ bzip2 etc.tar #压缩
[root@localhost Desktop]$ du -sh etc.tar.bzip2 #查看压缩包大小
[root@localhost Desktop]$ bunzip2 etc.tar.gz #解压

bzip2

8.3.4 xz

[root@localhost Desktop]$ xz etc.tar #压缩
[root@localhost Desktop]$ du -sh etc.tar.xz #查看压缩包大小
[root@localhost Desktop]$ unxz etc.tar.gz #解压

xz

8.4 打包压缩

8.4.1 tar+gzip ( z )

[root@localhost Desktop]$ tar zcf etc.tar.gz /etc #打包压缩
[root@localhost Desktop]$ tar zxf etc.tar.gz #解压

gzip

8.4.2 tar+bzip2 ( j )

[root@localhost Desktop]$ tar jcf etc.tar.bz2 /etc #打包压缩
[root@localhost Desktop]$ tar jxf etc.tar.bz2 #解压

bzip2

8.4.3 tar+xz ( J )

[root@localhost Desktop]$ tar Jcf etc.tar.xz /etc #打包压缩
[root@localhost Desktop]$ tar Jxf etc.tar.xz #解压

xz

发布了9 篇原创文章 · 获赞 4 · 访问量 679

猜你喜欢

转载自blog.csdn.net/weoopp/article/details/104280251
今日推荐