官术网_书友最值得收藏!

第3章 Rsync數據復制軟件應用實踐

3.1 Rsync介紹

3.1.1 什么是Rsync

Rsync是一款開源的快速的、可實現全量及增量的本地或遠程數據備份的多功能優秀工具。并且在復制時可以不改變原有數據的屬性信息,即可實現數據的備份遷移特性。Rsync軟件適用于Unix/Linux/Windows等多種操作系統平臺。

Rsync提供了大量參數來控制復制行為的各個方面,并且允許多種靈活的方式來實現文件的傳輸復制。它以其delta-transfer算法聞名。通過減少網絡數據發送數量,只發送源文件和目標文件之間的差異信息,從而實現數據的增量復制。

Rsync被廣泛應用于數據備份和鏡像,并作為一種改進后的復制命令用于日常系統中。

官方鏈接:http://www.samba.org/ftp/rsync/rsync.html

官方手冊:man rsync/man rsync.conf

3.1.2 Rsync功能介紹

Rsync英文全稱為Remote synchronization,從軟件名稱可以看出來,Rsync具有可使本地和遠程兩臺主機之間的數據快速復制、遠程備份的功能,Rsync軟件自帶的rsync命令本身就可以實現異地主機復制數據,這個功能類似scp命令(借助SSH服務實現遠程傳輸數據),但又優于scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝(同樣需借助SSH服務傳輸數據),此外,Rsync軟件還支持以配置守護進程方式實現異機數據復制。

除了遠程復制傳輸數據外,Rsync還可以在本地主機的不同分區或目錄之間全量及增量復制數據,這又類似cp命令,但同樣也優于cp命令,cp每次都是全量拷貝,而Rsync還可以增量拷貝。

最后rsync命令還可以作為刪除和查看命令被應用,在某種情況下類似于傳統的rm和ls命令。

rsync命令可以實現的功能如下:

1)實現本地數據同步復制(本地工作模式,相當于cp命令)。

2)實現遠程數據同步復制(遠程Shell工作模式,相當于scp命令)。

3)實現數據信息刪除功能(本地工作模式,相當于rm命令)。

4)實現數據信息查看功能(本地或遠程工作模式,相當于ls命令)。

3.1.3 Rsync軟件特性

Rsync的特性如下(7個特性信息說明):

? 支持拷貝普通文件與特殊文件,如鏈接文件、設備文件等。

? 支持排除指定文件或目錄同步的功能,相當于打包命令tar的排除功能。

? 可以做到保持原文件或目錄的權限、時間、軟硬鏈接、屬主、組等所有屬性均不改變。

? 可實現增量復制,即只復制發生變化的數據,因此數據傳輸效率很高。

? 可以使用rcp、rsh、SSH等方式來配合進行隧道加密傳輸文件(Rsync本身不對數據加密)。

? 可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)。

? 支持匿名或認證(無須系統用戶)進程模式傳輸,安全地進行數據備份及鏡像。

3.1.4 Rsync軟件復制原理

默認情況下,在備份復制數據時,Rsync通過其獨特的quick check算法,僅復制大小或者最后修改時間發生變化的文件或目錄,當然也可根據權限、屬主等屬性的變化復制,但需要指定相應的參數,甚至可以實現只復制一個文件里有變化的部分內容,所以可以實現快速地備份復制數據,即采用增量復制方法對數據信息進行復制,與傳統cp、scp復制工具的全量復制截然不同,增量復制數據在效率上遠遠高于全量復制,圖3-1所示為Rsync備份服務復制圖。

圖3-1 Rsync備份服務復制圖

在CentOS5系統上,Rsync軟件版本默認為2.x,同步增量復制數據原理是把所有的文件比對一遍,然后再進行數據同步。在CentOS6和CentOS7系統上,Rysnc軟件版本默認為3.x,增量復制數據的原理是一邊比對差異,一邊對差異的數據部分進行復制。從增量復制數據的效率上而言,Rsync 3.x版本比Rsync 2.x更有優勢一些。

可以利用rsync命令參數查看當前系統中Rsync軟件版本信息。

        [root@backup ~]# rsync --version

如果讀者還想了解底層的代碼層算法原理(普通運維工程師不建議了解),可以參考https://coolshell.cn/articles/7425.html中的相關內容。

主站蜘蛛池模板: 当阳市| 佛学| 融水| 郓城县| 那曲县| 永昌县| 冕宁县| 嘉祥县| 黔江区| 怀远县| 根河市| 涡阳县| 正阳县| 德保县| 万年县| 双峰县| 肇源县| 澎湖县| 天门市| 岑巩县| 磴口县| 稻城县| 色达县| 通渭县| 五台县| 中西区| 卓尼县| 天水市| 泗水县| 开远市| 晋中市| 民权县| 华坪县| 九江县| 水城县| 尼勒克县| 泗洪县| 于都县| 湾仔区| 观塘区| 汶川县|