rsync
和scp
一樣鸡岗,是用于服務(wù)器間數(shù)據(jù)傳輸?shù)墓ぞ叱∏凇O啾扔?code>scp主要有以下優(yōu)點(diǎn):
- 傳輸前會進(jìn)行檢測戈锻,跳過最終修改時(shí)間戳和文件大小一致的文件
- 傳輸前會對數(shù)據(jù)進(jìn)行壓縮
- 支持?jǐn)帱c(diǎn)續(xù)傳
推薦的使用時(shí)間:
rsync -arvzP --bwlimit=100 'hadoop@192.168.11.43:/home/data/script/sample' .
重要參數(shù)說明:
-P 支持?jǐn)帱c(diǎn)續(xù)傳
--progress 顯示過程
--exclude='*shell*' 排除不需要傳的文件
--rsh='ssh -p 8005' 不是使用默認(rèn)端口
--bwlimit=100 帶寬限制,單位為KBPS
詳細(xì)文檔參照此處和媳。
另外格遭,經(jīng)過測試,rsync本身的壓縮傳輸功能非常好用留瞳,傳輸未壓縮文檔和壓縮文檔時(shí)間相差不大拒迅。
如果只是為了傳輸請直接使用rsync
,不要自己進(jìn)行壓縮-傳輸-解壓-刪除操作她倘。因?yàn)樽约簩懩_本處理容易出錯(cuò)璧微,而來如果一個(gè)腳本中途發(fā)生錯(cuò)誤,由于進(jìn)行傳輸用的壓縮文件在解壓后被刪除帝牡,重新執(zhí)行需要重新拉取數(shù)據(jù)往毡。而直接使用rsync
命令可以利用它的自動跳過已下載文件和斷點(diǎn)續(xù)傳功能節(jié)省時(shí)間,避免不必要的數(shù)據(jù)拉取靶溜。
$ 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