- 跟老男孩學Linux運維:高性能Web集群實踐(上)
- 老男孩
- 1337字
- 2019-12-20 11:59:33
第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中的相關內容。
- pcDuino開發實戰
- 零起點學Linux系統管理
- Implementing Cisco UCS Solutions
- Linux網絡操作系統與實訓(第三版)
- 蘋果電腦玩全攻略 OS X 10.8 Mountain Lion
- Kubernetes網絡權威指南:基礎、原理與實踐
- 混沌工程實戰:手把手教你實現系統穩定性
- Windows Server 2012網絡操作系統企業應用案例詳解
- 移動應用UI設計模式(第2版)
- Windows 7案例教程
- Ceph分布式存儲實戰
- Advanced TypeScript Programming Projects
- Social Data Visualization with HTML5 and JavaScript
- 電腦辦公(Windows 10 + Office 2016)入門與提高(超值版)
- CSS揭秘