HOME 回資訊服務處首頁 Login
2009年第22期
簡訊
10/31院區開放 歡迎各界蒞臨參觀
中西曆轉換工具可調整西曆改曆日期
科技創新與社會責任國際論壇近日舉行
「語言地理資訊研習工作坊」11/11-12舉行
「網路影音服務」新增1場活動
11月份資訊推廣課程預告
「2009數位典藏地理資訊學術研討會」11/10-11假台大舉行
資訊技術
資料備份同步工具簡介— rsync
資訊安全
好友Twitter你買巴西紫莓減肥?是駭客冒充的
 
資訊技術 >
上一篇 | 下一篇 | 返回電子報
 
資料備份同步工具簡介— rsync
 
陸維肇

前言

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

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

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

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

rsync介紹

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

  • 鏡像備份(mirror backup):如同照鏡子一樣,把資料完整的做一份備份。
  • 增量備份(incremental backup):只備份從上次備份後,資料有異動的部份。

 rsync在符合GNU GPL的使用下,是完全免費的;目前最新的版本是3.0.6版。rsync可以用來複製資料、備份資料以及同步資料。
 
rsync的工作原理
 
 rsync為了快速地完成備份工作,在開始傳輸檔案之前,會先比較兩端的檔案,找出資料有異動的部份,將這些異動的部份傳輸到目的端,完成備份工作。正因為rsync只將資料有異動的部份傳輸到目的端,因此可以用來同步兩端的資料。

rsync的優點

  1. 可以進行增量備份,不怕備份中斷,節省備份時間。
  2. 傳輸過程中,可以利用ssh將資料加密。
  3. open source的軟體,可以跨平台使用。

rsync的缺點

  1. 遇到檔案數或目錄層數多的時候,效率較差。檔案數達到一定的數量,rsync可能無法執行。
  2. 使用時要小心,避免覆蓋到想要保留的資料。

rsync的運作模式 

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

  1. 在本機上運作。
  2. 透過rsh或ssh的方式傳輸資料。
  3. 透過daemon的方式傳輸資料。

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

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

使用案例說明

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

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

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


圖1

2.由於隨身碟中並沒有任何關於專案目錄的資料,因此我們使用指令"rsync -av 來源端目錄 目的端目錄"進行完整備份,將專案目錄的資料備份到隨身碟中,如【圖2】所示。


圖2

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


圖3

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

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

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


圖4

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


圖5

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


圖6

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

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

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


圖7

2.在本機上使用指令"rsync -av -e ssh 遠端主機名稱:/路徑 目的端目錄"將遠端主機的資料,帶回個人電腦中使用。執行結果如【圖8】所示,並比對兩邊檔案的內容(【圖7】、【圖8】),確認完整地將遠端主機的資料都帶回個人電腦。


圖8

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

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

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


圖9

2.在本機上使用指令"rsync -av --delete -e ssh 來源端目錄 遠端主機名稱:/路徑"將資料同步到遠端主機中,執行結果如【圖10】所示。


圖10

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


圖11

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

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

1.備份前,本機資料如【圖12】所示。rsync備份主機提供了一組帳號、密碼及模組名稱以便我們進行本機資料備份。利用指令"rsync -av 來源端目錄 帳號名稱@遠端主機名稱::模組名稱"將資料備份到rsync備份主機上存放;備份過程如【圖12】所示。


圖12

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


圖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】所示。


圖14

結語

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

  1. 確認資料要備份或同步的目的地,避免覆蓋來源端的資料。
  2. 同步資料時,請謹慎使用--delete參數,避免資料被刪除。
  3. 自動執行備份或同步時,請務必確認要備份的檔案系統存在;如果要備份的檔案系統不在,可能會誤將已備份的資料都刪除。
  4. 如果目錄或檔案數量過多,可能無法執行rsync備份。

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

參考資料




上一篇 | 下一篇 | 返回電子報
 
 本電子報所有文字、圖片版權為中央研究院所有 。 電子報出版系統由中央研究院資訊服務處開發。