快速传输大批量数据(tar+lz4+pv+ssh)
服务器之间传输数据平时常使用的命令如scp、rsync这两个,一些小的文件或目录这两个命令足以搞定,但是一旦数据几十上百G,这样传输就有些慢了。
前两天做远程数据传输的时候,用scp命令始终感觉有点慢,就google了一下,发现了一个更好用的传输方式:tar+lz4+pv+ssh。
-
LZ4是一个非常快的无损压缩算法,压缩速度在单核300MB/S,可扩展支持多核CPU。它还具有一个非常快速的解码器,速度单核可达到和超越1GB/S。通常能够达到多核系统上的RAM速度限制。
-
PV 由Andrew Wood 开发,是 Pipe Viewer 的简称,意思是通过管道显示数据处理进度的信息。这些信息包括已经耗费的时间,完成的百分比(通过进度条显示),当前的速度,全部传输的数据,以及估计剩余的时间。 "要使用 PV,需要配合合适的选项,把它放置在两个进程之间的管道。命令的标准输入将会通过标准输出传进来的,而进度会被输出到标准错误输出。” 利用它我们可以查看到命令执行的进度。
网上也找了一段命令实例:
time tar -c sendlog/|pv|lz4 -B4|ssh -c arcfour128 \ -o"MACs umac-64@openssh.com" 10.xxx.xxx.36 "lz4 -d |tar -xC /u01/backup_supu"
3.91GiB 0:00:16 [ 249MiB/s] real 0m16.067s user 0m15.553s sys