rsync
和scp
一样,是用于服务器间数据传输的工具。相比于scp
主要有以下优点:
- 传输前会进行检测,跳过最终修改时间戳和文件大小一致的文件
- 传输前会对数据进行压缩
- 支持断点续传
推荐的使用时间:
rsync -arvzP --bwlimit=100 'hadoop@192.168.11.43:/home/data/script/sample' .
重要参数说明:
-P 支持断点续传
--progress 显示过程
--exclude='*shell*' 排除不需要传的文件
--rsh='ssh -p 8005' 不是使用默认端口
--bwlimit=100 带宽限制,单位为KBPS
详细文档参照此处。
另外,经过测试,rsync本身的压缩传输功能非常好用,传输未压缩文档和压缩文档时间相差不大。
如果只是为了传输请直接使用rsync
,不要自己进行压缩-传输-解压-删除操作。因为自己写脚本处理容易出错,而来如果一个脚本中途发生错误,由于进行传输用的压缩文件在解压后被删除,重新执行需要重新拉取数据。而直接使用rsync
命令可以利用它的自动跳过已下载文件和断点续传功能节省时间,避免不必要的数据拉取。
$ time rsync -arvzP --bwlimit=100 'hadoop@192.168.1.4:/home/data/script/sample' .
receiving file list ...
1 file to consider
sample
46932272 100% 643.18kB/s 0:01:11 (xfer#1, to-check=0/1)
sent 42 bytes received 7048622 bytes 97222.95 bytes/sec
total size is 46932272 speedup is 6.66
rsync -arvzP --bwlimit=100 'hadoop@192.168.1.4:/home/data/script/sample' . 0.41s user 0.21s system 0% cpu 1:11.67 total
$ time rsync -arvzP --bwlimit=100 'hadoop@192.168.1.4:/home/data/script/sample.tar.gz' .
receiving file list ...
1 file to consider
sample.tar.gz
7078285 100% 99.77kB/s 0:01:09 (xfer#1, to-check=0/1)
sent 42 bytes received 7080798 bytes 100437.45 bytes/sec
total size is 7078285 speedup is 1.00
rsync -arvzP --bwlimit=100 . 0.18s user 0.18s system 0% cpu 1:09.55 total
网友评论