linux rsync 原理,rsync 同步原理和类别

前言

在電腦裡,我們可能存放了工作上的資料或是生活上的回憶。這些資料對我們來說,都是極為重要的。因此,需要有效的方法來保護這些資料,避免資料損毀,造成損失與遺憾。

為了保護資料的完整性,可以採用硬體或是軟體的方式來保護資料。以硬體為例,可以利用RAID的方式,來達成相當程度的保護;或是軟體的方式,將資料備份到現有的空間,碰到資料損壞的時候,還有備份的資料可以使用。

院內的使用者除了資料備份的議題外,還會面臨一個問題,個人電腦中與遠端主機的資料同步問題。以HPC使用者為例,常需要讓資料在個人電腦與HPC服務的主機之間來回。長久下來,可能會使得個人電腦與HPC主機中的資料不同步,難以進行資料的管理。

今天要介紹的rsync,可以以低成本的方式,解決資料備份與同步的問題。

rsync介紹

介紹rsync之前,先介紹兩個備份相關名詞:

鏡像備份(mirror backup):如同照鏡子一樣,把資料完整的做一份備份。

增量備份(incremental backup):只備份從上次備份後,資料有異動的部份。

rsync在符合GNU

GPL的使用下,是完全免費的;目前最新的版本是3.0.6版。rsync可以用來複製資料、備份資料以及同步資料。

rsync的工作原理

rsync為了快速地完成備份工作,在開始傳輸檔案之前,會先比較兩端的檔案,找出資料有異動的部份,將這些異動的部份傳輸到目的端,完成備份工作。正因為rsync只將資料有異動的部份傳輸到目的端,因此可以用來同步兩端的資料。

rsync的優點

可以進行增量備份,不怕備份中斷,節省備份時間。

傳輸過程中,可以利用ssh將資料加密。

open source的軟體,可以跨平台使用。

rsync的缺點

遇到檔案數或目錄層數多的時候,效率較差。檔案數達到一定的數量,rsync可能無法執行。

使用時要小心,避免覆蓋到想要保留的資料。

rsync的運作模式

rsync的運作模式有如下三種:

在本機上運作。

透過rsh或ssh的方式傳輸資料。

透過daemon的方式傳輸資料。

實際使用時,本機與遠端機器均要安裝rsync。前兩種運作模式,安裝rsync之後,不需要做任何設定,就能在來源端用rsync將資料備份到目的端;第三種運作模式要有目的端root的權限,對rsync相關檔案進行設定之後,並啟動rsync

daemon,才可以從來源端執行rsync將資料備份到目的端。

關於rsync daemon的設定,請詳參考資料。以下就列舉幾種rsync的使用案例,說明rsync的使用方式。

使用案例說明

◎使用【案例1】在本機上備份或同步專案目錄

假設我們有個專案正在進行,希望可以將專案資料帶到其他電腦上繼續使用。此時,就可以將辦公室電腦中的專案目錄,以rsync備份到隨身碟中,將專案資料帶到其他電腦上使用,方式如下:

1. src_dir 為專案目錄,dest_dir為隨身碟,內容如【圖1】所示

a4c26d1e5885305701be709a3d33442f.png

圖1

2.由於隨身碟中並沒有任何關於專案目錄的資料,因此我們使用指令"rsync -av 來源端目錄

目的端目錄"進行完整備份,將專案目錄的資料備份到隨身碟中,如【圖2】所示。

a4c26d1e5885305701be709a3d33442f.png

圖2

3. 利用sum指令比較兩個目錄的檔案是否有差異,比較結果如【圖3】所示,兩個目錄中的資料內容完全相同。

a4c26d1e5885305701be709a3d33442f.png

圖3

◎使用【案例2】將隨身碟中修改過的專案資料,同步回辦公室電腦中的專案目錄

在【案例1】中,我們將資料備份到隨身碟中,帶到其他的電腦上使用。現在要將變動過的資料,同步回辦公室電腦,步驟為:

1.同步前,辦公室電腦的資料內容及隨身碟中的資料內容比較,如【圖4】所示,少了一個檔案,還有一個檔案兩邊不同。

a4c26d1e5885305701be709a3d33442f.png

圖4

2.利用指令"rsync -av --delete 來源端目錄

目的端目錄"同步資料,如【圖5】所示,更新了一個檔案,因為使用了--delete參數,rsync刪除了一個檔案。

a4c26d1e5885305701be709a3d33442f.png

圖5

3.完成同步後,比較兩個目錄的檔案是否有差異,比較結果如【圖6】所示,兩個目錄中的資料內容完全相同。

a4c26d1e5885305701be709a3d33442f.png

圖6

◎使用【案例3】透過ssh將本機資料備份到遠端主機

院內同仁如果有大量的資料需要從遠端主機帶回個人電腦中使用,可以用rsync透過ssh把資料備份或同步到個人電腦中,只要遠端主機有安裝rsync,不需要特別的設定,就可以使用,作法如下:

1.備份前,遠端主機的資料內容如【圖7】所示。

a4c26d1e5885305701be709a3d33442f.png

圖7

2.在本機上使用指令"rsync -av -e ssh 遠端主機名稱:/路徑

目的端目錄"將遠端主機的資料,帶回個人電腦中使用。執行結果如【圖8】所示,並比對兩邊檔案的內容(【圖7】、【圖8】),確認完整地將遠端主機的資料都帶回個人電腦。

a4c26d1e5885305701be709a3d33442f.png

圖8

◎使用【案例4】將個人電腦中的資料,透過ssh同步回遠端主機中存放或使用。

對部份同仁而言,可能在主機上放存放了很多的資料,這些資料需要與本機的資料同步以便管理,像是網頁資料或是科學計算的資料,其程序為:

1.備份前,本機資料的內容如【圖9】所示。

a4c26d1e5885305701be709a3d33442f.png

圖9

2.在本機上使用指令"rsync -av --delete -e ssh 來源端目錄

遠端主機名稱:/路徑"將資料同步到遠端主機中,執行結果如【圖10】所示。

a4c26d1e5885305701be709a3d33442f.png

圖10

3.比較本機資料與遠端主機資料的差異,如【圖9】、【圖11】所示,兩邊資料相同。

a4c26d1e5885305701be709a3d33442f.png

圖11

◎使用【案例5】將本機資料備份到rsync備份主機存放

除了透過ssh或rsh的方式將資料備份到遠端主機存放外,遠端主機還可以將rsync以服務的模式啟動,接受資料備份的要求(關於rsync以服務啟動的設定,請詳參考資料)。以下假設rsync備份主機已設定完成,並提供備份時所需要的帳號、密碼及模組名稱,備份程序如下:

1.備份前,本機資料如【圖12】所示。rsync備份主機提供了一組帳號、密碼及模組名稱以便我們進行本機資料備份。利用指令"rsync

-av 來源端目錄

帳號名稱@遠端主機名稱::模組名稱"將資料備份到rsync備份主機上存放;備份過程如【圖12】所示。

a4c26d1e5885305701be709a3d33442f.png

圖12

2.檢查rsync備份主機上的資料內容,如【圖13】所示,其結果與本機資料的內容(【圖12】)一致。

a4c26d1e5885305701be709a3d33442f.png

圖13

上述將資料備份到rsync備份主機的過程中,需要手動輸入密碼;如果需要自動備份,請加入--passwoed-file參數,指定密碼檔,例如rsync

-av

--password-file=/root/rsync.pwd,讓rsync去讀取指定的密碼檔,以便進行自動備份。要注意的是,rsync要求密碼檔的權限設定必須為檔案擁有者唯讀,其他人沒有任何存取權限,以保障密碼檔的安全。如此,rsync才能正常的完成指定的備份工作。

◎使用【案例6】使用rsync備份主機的資料,進行資料救援

平時如果有將資料備份到rsync備份主機上存放,一旦發生資料遺失或損毀,就可以透過rsync將備份資料取回,完成資料救援,方式為:

1.承使用【案例5】,我們故意將本機資料中的兩個檔案更名,模擬資料遺失狀況,接著用指令"rsync -av

rsync://帳號名稱@遠端主機名稱/模組名稱/路徑

目的端目錄"取回rsync備份主機上的資料。將取回的資料比對原本的資料,確認兩者內容一致,如【圖14】所示。

a4c26d1e5885305701be709a3d33442f.png

圖14

結語

使用rsync,要注意下列幾種狀況,避免資料被刪除或覆蓋:

確認資料要備份或同步的目的地,避免覆蓋來源端的資料。

同步資料時,請謹慎使用--delete參數,避免資料被刪除。

自動執行備份或同步時,請務必確認要備份的檔案系統存在;如果要備份的檔案系統不在,可能會誤將已備份的資料都刪除。

如果目錄或檔案數量過多,可能無法執行rsync備份。

本文以上列舉了常見的rsync使用案例,這些使用案例包含了備份及資料取回的程序,供讀者參考。利用rsync只更新異動資料的特性,除了可以減少備份時間,讓備份工作變得更容易進行外,即使備份失敗,也只需要再執行一次備份程序,將未備份的資料進行備份即可,可謂相當簡易而方便。

參考資料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值