linux大文件高速传输(tar+lz4+pv+ssh)

avatar 2022年6月24日18:10:25 评论 598 次浏览

在linux中拷贝文件,如果文件小还好,可以使用cp,但是大文件拷贝像scp,rsync,ftp等等,传输文件太慢了,如果使用tar+lz4+pv+ssh传输文件,相比rsync和scp或者ftp等,传输速度要快很多,但是也要考虑带宽等问题,下面看看如何安装:

[wolf@wulaoer.org🔥🔥🔥🔥 ~]# rpm -ivh mysql-community-client-8.0.28-1.el8.x86_64.rpm --force --nodeps
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# yum -y install lz4
或者源码安装
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# wget http://pkgs.fedoraproject.org/repo/pkgs/pv/pv-1.1.4.tar.gz/8d0eda2182640919daaf6186cd816a13/pv-1.1.4.tar.gz
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# tar -xf pv-1.1.4.tar.gz
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# cd  pv-1.1.4
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# ./configure && make && make install

上面是安装方式,下面看看如何使用的。

#scp
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# time scp tt.tar.gz 192.168.50.244:/data/bak
tt.tar.gz                                                            100%  228MB  45.7MB/s  00:05
real 0m5.578s
user 0m1.699s
sys 0m0.542s
#lz4
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# time tar -c  tt.tar.gz|pv|lz4 -B4|ssh -c arcfour128 -o "MACs umac-64@openssh.com" 192.168.50.244 "lz4 -d |tar -xC /data/bak"
228MB 0:00:02 [79.4MB/s] [    <=>                                                                  ]
real 0m2.899s
user 0m0.224s
sys 0m1.923s
#rsync
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# time rsync -auvzP -e "ssh -p22" tt.tar.gz 192.168.176.11:/data/
......
sent 11,741,677 bytes received 10,451 bytes 7,834,752.00 bytes/sec
total size is 18,502,481 speedup is 1.57
real 0m1.130s
user    0m0.797s

以上传输速度一眼就可以看出来了,不过针对上面三种传输,lz4在传输过程中有点不友好的是,比如我有一个文件/opt/{a,b}两个目录,如果我只想把a目录下的内容拷贝到/home目录。这个就做不到了,拷贝到home目录下就是/home/opt/a路径,就是选择性比较差。本地拷贝本地一分钟能拷1g左右,所以速度还是特别快的。

特别注意,tt.tar.gz是文件名,arcfour128是加密方式,MACs umac-64@openssh.com可以省了,后面路径是目的路径。

[wolf@wulaoer.org🔥🔥🔥🔥 ~]# time tar -c tt.tar.gz |pv |lz4 -B4 |ssh -p22 -c aes128-ctr 192.168.176.11 "lz4 -d |tar -xC /data/"
using blocks of size 64 KB
18.1MiB 0:00:00 [49.5MiB/s] [  <=>                                                                                   ]
real    0m0.376s
user    0m0.080s
sys    0m0.108s

以上就是使用lz4的方式,没有了,看看些其他的吧。。。。。。。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: