1. 程式人生 > >Rsync數據同步工具應用指南

Rsync數據同步工具應用指南

rsync 文件同步

1、Rsync數據同步工具應用指南

簡介
Rsync的特性:
Rsync的工作方式:
Rsync命令同步選項參數:
本地主機模式示例
遠程RPC模式示例

簡介

    Rsync是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠程數據同步備份的優秀工具。可使本地和遠程兩臺或多臺主機之間的數據快速復制同步鏡像、遠程備份的功能。這個功能類似ssh自帶的scp命令,但又優於scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝。當然,Rsync還可以在本地主機的不同分區或目錄之間全量及增量的復制數據,這又類似cp命令,但同樣也優於cp命令,cp每次都是全量拷貝,而rsync可以增量拷貝。一個rsync相當於scp、cp、rm,但是還優於他們每一個命令。
    在同步備份數據時,默認情況下,Rsync通過其獨特的“quick check”算法,它僅同步大小或者最後修改時間發生變化的文件或者目錄,當然也可以根據權限的,屬主等屬性的變化來進行同步,但需要指定相應的參數,甚至可以實現只同步一個文件裏有變化的部分內容,所以,可以快速的實現數據的同步、備份。

Rsync的特性:

1.支持拷貝特殊文件如鏈接文件、設備等。
2.可以有排除指定文件或目錄同步的功能,相當於打包命令tar的排除功能。
3.可以做到保持原文件或目錄的權限、時間、軟硬鏈接、屬主、屬組等所有屬性均不改變-p。
4.可以實現增量同步,即只同步變化的數據,因此數據傳輸效率很高。
5.可以使用rcp、rsh、ssh等方式來配合傳輸文件(rsync本身不對數據加密)。
6.可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)。
7.支持匿名或認證的進程模式傳輸,可以實現方便安全的進行數據備份及鏡像。

Rsync的工作方式:

1.單個主機本地之間的數據傳輸(此時類似於CP命令的功能)
2.借助rcp,ssh等通道來傳輸數據(此時類似於Scp命令的功能)
3.以守護進程(socket)的方式傳輸數據(這是Rsync自身重要的功能)

Rsync命令同步選項參數:

語法格式:
   Local:  rsync [OPTION...] SRC... [DEST]

   Access via remote shell:
     Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
     Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

   Access via rsync daemon:
     Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
           rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
     Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
           rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST    
常用參數說明:
-v,--verbose:詳細模式輸出,傳輸時的進度等信息。
-z,--compress:傳輸時進行壓縮以提高傳輸效率,--compress-level=NUM可按級別壓縮。
-a,--archive:歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於-rtopgDl。
-r,--recursive:對子目錄以遞歸模式,即目錄下的所有目錄都同樣傳輸,註意是小寫r。
-t,--times:保持文件時間信息。
-o,--owner:保持文件屬主信息。
-p,--perms:保持文件權限。
-g,--group:保持文件屬組信息。
-P,--progress:顯示同步的過程及傳輸時的進度等信息。
-D,--devices:保持設備文件信息。
-l,--links:保留軟鏈接。
-e,--rsh=COMMAND:使用的信道協議,指定替代rsh的shell程序。例如:ssh。
--exclude=PATTERN:指定排除不需要傳輸的文件模式。
--exclude-from=file(文件名所在的目錄文件)
--bwlimit=PATE(限速) limit socket I/O bandwidth。
生產參數:-avz或者-vzrtopg。####本地傳輸模式(local-only mode)
本地主機模式示例
[[email protected] ~]# rsync -avzP /etc/hosts /tmp/   #本地模式,將hosts文件同步至/tmp目錄
sending incremental file list
hosts         158 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)
sent 124 bytes  received 31 bytes  310.00 bytes/sec
total size is 158  speedup is 1.02
遠程RPC模式示例
推送
[[email protected] ~]# rsync -avzP -e ‘ssh -p 22‘ /etc/hosts [email protected]:/tmp #將本地的hosts文件同步到遠程主機的/tmp目錄下
[email protected] password: 
sending incremental file list
hostssent 124 bytes  received 31 bytes  44.29 bytes/sec
total size is 158  speedup is 1.02
拉取
[[email protected] ~]# rsync -avzP -e ‘ssh -p 22‘ 
[email protected]:/tmp/hosts /root/  #將hosts文件從遠程主機拉取到本地root家目錄
[email protected] password: 
receiving incremental file list
hosts         158 100%  154.30kB/s    0:00:00 (xfer#1, to-check=0/1)
sent 30 bytes  received 129 bytes  45.43 bytes/sec
total size is 158  speedup is 0.99

本文出自 “Char” 博客,請務必保留此出處http://charcce.blog.51cto.com/4255555/1926332

Rsync數據同步工具應用指南