- 跟老男孩學(xué)Linux運(yùn)維:高性能Web集群實(shí)踐(上)
- 老男孩
- 14字
- 2019-12-20 11:59:33
第3章 Rsync數(shù)據(jù)復(fù)制軟件應(yīng)用實(shí)踐
3.1 Rsync介紹
3.1.1 什么是Rsync
Rsync是一款開源的快速的、可實(shí)現(xiàn)全量及增量的本地或遠(yuǎn)程數(shù)據(jù)備份的多功能優(yōu)秀工具。并且在復(fù)制時可以不改變原有數(shù)據(jù)的屬性信息,即可實(shí)現(xiàn)數(shù)據(jù)的備份遷移特性。Rsync軟件適用于Unix/Linux/Windows等多種操作系統(tǒng)平臺。
Rsync提供了大量參數(shù)來控制復(fù)制行為的各個方面,并且允許多種靈活的方式來實(shí)現(xiàn)文件的傳輸復(fù)制。它以其delta-transfer算法聞名。通過減少網(wǎng)絡(luò)數(shù)據(jù)發(fā)送數(shù)量,只發(fā)送源文件和目標(biāo)文件之間的差異信息,從而實(shí)現(xiàn)數(shù)據(jù)的增量復(fù)制。
Rsync被廣泛應(yīng)用于數(shù)據(jù)備份和鏡像,并作為一種改進(jìn)后的復(fù)制命令用于日常系統(tǒng)中。
官方鏈接:http://www.samba.org/ftp/rsync/rsync.html
官方手冊:man rsync/man rsync.conf
3.1.2 Rsync功能介紹
Rsync英文全稱為Remote synchronization,從軟件名稱可以看出來,Rsync具有可使本地和遠(yuǎn)程兩臺主機(jī)之間的數(shù)據(jù)快速復(fù)制、遠(yuǎn)程備份的功能,Rsync軟件自帶的rsync命令本身就可以實(shí)現(xiàn)異地主機(jī)復(fù)制數(shù)據(jù),這個功能類似scp命令(借助SSH服務(wù)實(shí)現(xiàn)遠(yuǎn)程傳輸數(shù)據(jù)),但又優(yōu)于scp命令的功能,scp每次都是全量拷貝,而rsync可以增量拷貝(同樣需借助SSH服務(wù)傳輸數(shù)據(jù)),此外,Rsync軟件還支持以配置守護(hù)進(jìn)程方式實(shí)現(xiàn)異機(jī)數(shù)據(jù)復(fù)制。
除了遠(yuǎn)程復(fù)制傳輸數(shù)據(jù)外,Rsync還可以在本地主機(jī)的不同分區(qū)或目錄之間全量及增量復(fù)制數(shù)據(jù),這又類似cp命令,但同樣也優(yōu)于cp命令,cp每次都是全量拷貝,而Rsync還可以增量拷貝。
最后rsync命令還可以作為刪除和查看命令被應(yīng)用,在某種情況下類似于傳統(tǒng)的rm和ls命令。
rsync命令可以實(shí)現(xiàn)的功能如下:
1)實(shí)現(xiàn)本地數(shù)據(jù)同步復(fù)制(本地工作模式,相當(dāng)于cp命令)。
2)實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)同步復(fù)制(遠(yuǎn)程Shell工作模式,相當(dāng)于scp命令)。
3)實(shí)現(xiàn)數(shù)據(jù)信息刪除功能(本地工作模式,相當(dāng)于rm命令)。
4)實(shí)現(xiàn)數(shù)據(jù)信息查看功能(本地或遠(yuǎn)程工作模式,相當(dāng)于ls命令)。
3.1.3 Rsync軟件特性
Rsync的特性如下(7個特性信息說明):
? 支持拷貝普通文件與特殊文件,如鏈接文件、設(shè)備文件等。
? 支持排除指定文件或目錄同步的功能,相當(dāng)于打包命令tar的排除功能。
? 可以做到保持原文件或目錄的權(quán)限、時間、軟硬鏈接、屬主、組等所有屬性均不改變。
? 可實(shí)現(xiàn)增量復(fù)制,即只復(fù)制發(fā)生變化的數(shù)據(jù),因此數(shù)據(jù)傳輸效率很高。
? 可以使用rcp、rsh、SSH等方式來配合進(jìn)行隧道加密傳輸文件(Rsync本身不對數(shù)據(jù)加密)。
? 可以通過socket(進(jìn)程方式)傳輸文件和數(shù)據(jù)(服務(wù)端和客戶端)。
? 支持匿名或認(rèn)證(無須系統(tǒng)用戶)進(jìn)程模式傳輸,安全地進(jìn)行數(shù)據(jù)備份及鏡像。
3.1.4 Rsync軟件復(fù)制原理
默認(rèn)情況下,在備份復(fù)制數(shù)據(jù)時,Rsync通過其獨(dú)特的quick check算法,僅復(fù)制大小或者最后修改時間發(fā)生變化的文件或目錄,當(dāng)然也可根據(jù)權(quán)限、屬主等屬性的變化復(fù)制,但需要指定相應(yīng)的參數(shù),甚至可以實(shí)現(xiàn)只復(fù)制一個文件里有變化的部分內(nèi)容,所以可以實(shí)現(xiàn)快速地備份復(fù)制數(shù)據(jù),即采用增量復(fù)制方法對數(shù)據(jù)信息進(jìn)行復(fù)制,與傳統(tǒng)cp、scp復(fù)制工具的全量復(fù)制截然不同,增量復(fù)制數(shù)據(jù)在效率上遠(yuǎn)遠(yuǎn)高于全量復(fù)制,圖3-1所示為Rsync備份服務(wù)復(fù)制圖。

圖3-1 Rsync備份服務(wù)復(fù)制圖
在CentOS5系統(tǒng)上,Rsync軟件版本默認(rèn)為2.x,同步增量復(fù)制數(shù)據(jù)原理是把所有的文件比對一遍,然后再進(jìn)行數(shù)據(jù)同步。在CentOS6和CentOS7系統(tǒng)上,Rysnc軟件版本默認(rèn)為3.x,增量復(fù)制數(shù)據(jù)的原理是一邊比對差異,一邊對差異的數(shù)據(jù)部分進(jìn)行復(fù)制。從增量復(fù)制數(shù)據(jù)的效率上而言,Rsync 3.x版本比Rsync 2.x更有優(yōu)勢一些。
可以利用rsync命令參數(shù)查看當(dāng)前系統(tǒng)中Rsync軟件版本信息。
[root@backup ~]# rsync --version
如果讀者還想了解底層的代碼層算法原理(普通運(yùn)維工程師不建議了解),可以參考https://coolshell.cn/articles/7425.html中的相關(guān)內(nèi)容。
- Windows Vista基礎(chǔ)與應(yīng)用精品教程
- 無蘋果不生活 OS X Mountain Lion隨身寶典
- Instant Handlebars.js
- Installing and Configuring Windows 10:70-698 Exam Guide
- 計算機(jī)系統(tǒng)開發(fā)與優(yōu)化實(shí)戰(zhàn)
- 新手學(xué)電腦從入門到精通(Windows 10+Office 2016版)
- 嵌入式系統(tǒng)及其應(yīng)用(第三版)
- 無蘋果不生活 The New iPad隨身寶典
- 突破平面3ds Max動畫設(shè)計與制作
- Kali Linux 2018:Windows Penetration Testing
- NetDevOps入門與實(shí)踐
- AWS SysOps Cookbook
- Introduction to R for Quantitative Finance
- μC/OS-III內(nèi)核實(shí)現(xiàn)與應(yīng)用開發(fā)實(shí)戰(zhàn)指南:基于STM32
- Linux從入門到精通(視頻教學(xué)版)