linux命令之rsync同步速度分析
rsync是類unix系統下的資料鏡像備份工具——remote sync。一款快速增量備份工具 Remote Sync,遠程同步 支援本地複製,或者與其他SSH、rsync主機同步。
它的特性如下:
1)可以鏡像儲存整個分類樹和檔案系統。
2)可以很容易做到保持原來檔案的許可權、時間、軟永久連結等等。
3)無須特殊許可權即可安裝。
4)快速:第一次同步時 rsync 會複製全部內容,但在下一次只傳輸修改過的檔案。rsync 在傳輸資料的過程中可以實行壓縮及解壓縮操作,因此可以使用更少的頻寬。
5)安全:可以使用scp、ssh等方式來傳輸檔案,當然也可以通過直接的socket串連。
6)支援匿名傳輸,以方便進行網站鏡象。
一下是我的一個rsync指令碼,基本滿足大部分需求:
rsync --compress --recursive --times --perms --owner --group --links --exclude=smarty/templates_c/ --timeout=30 [path] [user]@[ip]:[path]echo '----------------------------------------------------'echo "complete rsync [path] to [user]@[ip]:[path]"
參數解析:
-z, --compress 對備份的檔案在傳輸時進行壓縮處理
-r, --recursive 對子目錄以遞迴模式處理
-t, --times 保持檔案時間資訊
-p, --perms 保持檔案許可權
-o, --owner 保持檔案屬主資訊
-g, --group 保持檔案屬組資訊
-l, --links 保留軟鏈結
--exclude=PATTERN 指定排除不需要傳輸的檔案模式
--timeout=TIME IP逾時時間,單位為秒
rsync速度測試
我的同步目錄大小是88M,執行命令
building file list ... donesent 637987 bytes received 20 bytes 425338.00 bytes/sectotal size is 88738094 speedup is 139.09
可以看到,僅僅傳輸了637kb的資料而已,而不是實際的88M資料,原因是rsync並不是將所有檔案進行同步。