linux rsync 原理,rsync 同步原理和类别
前言
在電腦裡,我們可能存放了工作上的資料或是生活上的回憶。這些資料對我們來說,都是極為重要的。因此,需要有效的方法來保護(hù)這些資料,避免資料損毀,造成損失與遺憾。
為了保護(hù)資料的完整性,可以採用硬體或是軟體的方式來保護(hù)資料。以硬體為例,可以利用RAID的方式,來達(dá)成相當(dāng)程度的保護(hù);或是軟體的方式,將資料備份到現(xiàn)有的空間,碰到資料損壞的時候,還有備份的資料可以使用。
院內(nèi)的使用者除了資料備份的議題外,還會面臨一個問題,個人電腦中與遠(yuǎn)端主機的資料同步問題。以HPC使用者為例,常需要讓資料在個人電腦與HPC服務(wù)的主機之間來回。長久下來,可能會使得個人電腦與HPC主機中的資料不同步,難以進(jìn)行資料的管理。
今天要介紹的rsync,可以以低成本的方式,解決資料備份與同步的問題。
rsync介紹
介紹rsync之前,先介紹兩個備份相關(guān)名詞:
鏡像備份(mirror backup):如同照鏡子一樣,把資料完整的做一份備份。
增量備份(incremental backup):只備份從上次備份後,資料有異動的部份。
rsync在符合GNU
GPL的使用下,是完全免費的;目前最新的版本是3.0.6版。rsync可以用來複製資料、備份資料以及同步資料。
rsync的工作原理
rsync為了快速地完成備份工作,在開始傳輸檔案之前,會先比較兩端的檔案,找出資料有異動的部份,將這些異動的部份傳輸?shù)侥康亩?#xff0c;完成備份工作。正因為rsync只將資料有異動的部份傳輸?shù)侥康亩?#xff0c;因此可以用來同步兩端的資料。
rsync的優(yōu)點
可以進(jìn)行增量備份,不怕備份中斷,節(jié)省備份時間。
傳輸過程中,可以利用ssh將資料加密。
open source的軟體,可以跨平臺使用。
rsync的缺點
遇到檔案數(shù)或目錄層數(shù)多的時候,效率較差。檔案數(shù)達(dá)到一定的數(shù)量,rsync可能無法執(zhí)行。
使用時要小心,避免覆蓋到想要保留的資料。
rsync的運作模式
rsync的運作模式有如下三種:
在本機上運作。
透過rsh或ssh的方式傳輸資料。
透過daemon的方式傳輸資料。
實際使用時,本機與遠(yuǎn)端機器均要安裝rsync。前兩種運作模式,安裝rsync之後,不需要做任何設(shè)定,就能在來源端用rsync將資料備份到目的端;第三種運作模式要有目的端root的權(quán)限,對rsync相關(guān)檔案進(jìn)行設(shè)定之後,並啟動rsync
daemon,才可以從來源端執(zhí)行rsync將資料備份到目的端。
關(guān)於rsync daemon的設(shè)定,請詳參考資料。以下就列舉幾種rsync的使用案例,說明rsync的使用方式。
使用案例說明
◎使用【案例1】在本機上備份或同步專案目錄
假設(shè)我們有個專案正在進(jìn)行,希望可以將專案資料帶到其他電腦上繼續(xù)使用。此時,就可以將辦公室電腦中的專案目錄,以rsync備份到隨身碟中,將專案資料帶到其他電腦上使用,方式如下:
1. src_dir 為專案目錄,dest_dir為隨身碟,內(nèi)容如【圖1】所示
圖1
2.由於隨身碟中並沒有任何關(guān)於專案目錄的資料,因此我們使用指令"rsync -av 來源端目錄
目的端目錄"進(jìn)行完整備份,將專案目錄的資料備份到隨身碟中,如【圖2】所示。
圖2
3. 利用sum指令比較兩個目錄的檔案是否有差異,比較結(jié)果如【圖3】所示,兩個目錄中的資料內(nèi)容完全相同。
圖3
◎使用【案例2】將隨身碟中修改過的專案資料,同步回辦公室電腦中的專案目錄
在【案例1】中,我們將資料備份到隨身碟中,帶到其他的電腦上使用。現(xiàn)在要將變動過的資料,同步回辦公室電腦,步驟為:
1.同步前,辦公室電腦的資料內(nèi)容及隨身碟中的資料內(nèi)容比較,如【圖4】所示,少了一個檔案,還有一個檔案兩邊不同。
圖4
2.利用指令"rsync -av --delete 來源端目錄
目的端目錄"同步資料,如【圖5】所示,更新了一個檔案,因為使用了--delete參數(shù),rsync刪除了一個檔案。
圖5
3.完成同步後,比較兩個目錄的檔案是否有差異,比較結(jié)果如【圖6】所示,兩個目錄中的資料內(nèi)容完全相同。
圖6
◎使用【案例3】透過ssh將本機資料備份到遠(yuǎn)端主機
院內(nèi)同仁如果有大量的資料需要從遠(yuǎn)端主機帶回個人電腦中使用,可以用rsync透過ssh把資料備份或同步到個人電腦中,只要遠(yuǎn)端主機有安裝rsync,不需要特別的設(shè)定,就可以使用,作法如下:
1.備份前,遠(yuǎn)端主機的資料內(nèi)容如【圖7】所示。
圖7
2.在本機上使用指令"rsync -av -e ssh 遠(yuǎn)端主機名稱:/路徑
目的端目錄"將遠(yuǎn)端主機的資料,帶回個人電腦中使用。執(zhí)行結(jié)果如【圖8】所示,並比對兩邊檔案的內(nèi)容(【圖7】、【圖8】),確認(rèn)完整地將遠(yuǎn)端主機的資料都帶回個人電腦。
圖8
◎使用【案例4】將個人電腦中的資料,透過ssh同步回遠(yuǎn)端主機中存放或使用。
對部份同仁而言,可能在主機上放存放了很多的資料,這些資料需要與本機的資料同步以便管理,像是網(wǎng)頁資料或是科學(xué)計算的資料,其程序為:
1.備份前,本機資料的內(nèi)容如【圖9】所示。
圖9
2.在本機上使用指令"rsync -av --delete -e ssh 來源端目錄
遠(yuǎn)端主機名稱:/路徑"將資料同步到遠(yuǎn)端主機中,執(zhí)行結(jié)果如【圖10】所示。
圖10
3.比較本機資料與遠(yuǎn)端主機資料的差異,如【圖9】、【圖11】所示,兩邊資料相同。
圖11
◎使用【案例5】將本機資料備份到rsync備份主機存放
除了透過ssh或rsh的方式將資料備份到遠(yuǎn)端主機存放外,遠(yuǎn)端主機還可以將rsync以服務(wù)的模式啟動,接受資料備份的要求(關(guān)於rsync以服務(wù)啟動的設(shè)定,請詳參考資料)。以下假設(shè)rsync備份主機已設(shè)定完成,並提供備份時所需要的帳號、密碼及模組名稱,備份程序如下:
1.備份前,本機資料如【圖12】所示。rsync備份主機提供了一組帳號、密碼及模組名稱以便我們進(jìn)行本機資料備份。利用指令"rsync
-av 來源端目錄
帳號名稱@遠(yuǎn)端主機名稱::模組名稱"將資料備份到rsync備份主機上存放;備份過程如【圖12】所示。
圖12
2.檢查rsync備份主機上的資料內(nèi)容,如【圖13】所示,其結(jié)果與本機資料的內(nèi)容(【圖12】)一致。
圖13
上述將資料備份到rsync備份主機的過程中,需要手動輸入密碼;如果需要自動備份,請加入--passwoed-file參數(shù),指定密碼檔,例如rsync
-av
--password-file=/root/rsync.pwd,讓rsync去讀取指定的密碼檔,以便進(jìn)行自動備份。要注意的是,rsync要求密碼檔的權(quán)限設(shè)定必須為檔案擁有者唯讀,其他人沒有任何存取權(quán)限,以保障密碼檔的安全。如此,rsync才能正常的完成指定的備份工作。
◎使用【案例6】使用rsync備份主機的資料,進(jìn)行資料救援
平時如果有將資料備份到rsync備份主機上存放,一旦發(fā)生資料遺失或損毀,就可以透過rsync將備份資料取回,完成資料救援,方式為:
1.承使用【案例5】,我們故意將本機資料中的兩個檔案更名,模擬資料遺失狀況,接著用指令"rsync -av
rsync://帳號名稱@遠(yuǎn)端主機名稱/模組名稱/路徑
目的端目錄"取回rsync備份主機上的資料。將取回的資料比對原本的資料,確認(rèn)兩者內(nèi)容一致,如【圖14】所示。
圖14
結(jié)語
使用rsync,要注意下列幾種狀況,避免資料被刪除或覆蓋:
確認(rèn)資料要備份或同步的目的地,避免覆蓋來源端的資料。
同步資料時,請謹(jǐn)慎使用--delete參數(shù),避免資料被刪除。
自動執(zhí)行備份或同步時,請務(wù)必確認(rèn)要備份的檔案系統(tǒng)存在;如果要備份的檔案系統(tǒng)不在,可能會誤將已備份的資料都刪除。
如果目錄或檔案數(shù)量過多,可能無法執(zhí)行rsync備份。
本文以上列舉了常見的rsync使用案例,這些使用案例包含了備份及資料取回的程序,供讀者參考。利用rsync只更新異動資料的特性,除了可以減少備份時間,讓備份工作變得更容易進(jìn)行外,即使備份失敗,也只需要再執(zhí)行一次備份程序,將未備份的資料進(jìn)行備份即可,可謂相當(dāng)簡易而方便。
參考資料
總結(jié)
以上是生活随笔為你收集整理的linux rsync 原理,rsync 同步原理和类别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux怎么复制手册,程序员的Linu
- 下一篇: linux gitlab 9 邮件不发送