動作

RSync

出自 Itsmw

簡介

 rSync 是遠端備份資料的機制,而且這個機制是跨平台的,也就是不限作業系統類型。建議的作法是,用 Linux 架一台 rSync Server ,供其他 Linux Server 或 Windows 平台備份資料。


 在架設上,B2D Server 的方式最簡易,但由於其預設檔名編碼為 Big5 碼,鑑於相容,筆者建議採用 OB2D e系列來架設。但是 OB2D 上沒有 b2d server 的 rysnc 快速設定工具, 所以若要把 ob2d 當成 rsync server, 就得依下面步驟來處理。

rSync伺服器

  • 修改 /etc/default/rsync
    RSYNC_ENABLE=false → 改成RSYNC_ENABLE=true


  • 到現有的 b2d server 產生伺服器設定檔 /etc/rsyncd.conf 及 /etc/rsyncd.secrets 複製到 ob2d 的 /etc 底下。再依以下 rsyncd.conf 示例中所示, 必須建立 /mybk1 資料夾來放備份資料。
    • rsyncd.secrets 的內容為「帳號:密碼」, 示例如下
      my_backup:my_backup_passwd
    • 權限改為 400
      user@ob2d:# sudo chmod 400 rsyncd.secrets

    • rsyncd.conf 檔示例
log file = /var/log/rsyncd.log
    [mybk1]                   
    path = /mybk1             
    authusers = my_backup    
    uid = root                
    gid = root                
    secretsfile = /etc/rsyncd.secrets
    readonly = no

    [mybk2]            
    path = /mybk2             
    authusers = my_backup    
    uid = root                
    gid = root                
    secretsfile = /etc/rsyncd.secrets
    readonly = no
註:[mybk1]是區段名稱, 從[mybk1]至read only = no為一區段, 而一個設定檔, 允許設定多個區段
    • 建立 /mybk1 及 /mybk2 資料夾
      user@ob2d:# sudo mkdir /mybk1
      user@ob2d:# sudo mkdir /mybk2



rSync客戶端

做完以下設定,我們可以達成差異備份與差異還原的效果,也就是說無論執行備份或還原時,只有日期較新或檔案大小不一致的檔案才會作動。

基本設定

  1. 客戶端在 /root 底下產生三個檔案
    • rsyncd.secrets :密碼檔
    • bk2rsync.sh:把資料備份至 rSync Server
    • rsync2local.sh:從備份主機還原至本機
  2. 檔案要求
    • rsyncd.secrets 及兩個 sh 檔擁有者必須為 root , 而且必須 su 至 root 權限來執行
    • rsyncd.secrets 的檔案權限必須設定為 400 (-r--------)
      root@dns:~# chmod 400 rsyncd.secrets
    • rsyncd.secrets 內容只含密碼
      my_backup_passwd

備份至 rSync Server

  • root@dns:~# vi bk2rsync.sh
#! /bin/sh
/usr/bin/rsync -rvlHpogDtS --delete --password-file=/root/rsyncd.secrets /var/www my_backup@rsync.server::mybk1

  註1:把 /var/www 備份至 rsync.server這台主機的 mybk1 區段
  註2:加上「--delete」是指來源被刪除的檔案,備份端也得跟著刪除,若不需要,可以拿掉此參數。

自 rSync Server 還原

  • root@dns:~# vi rsync2local.sh
#! /bin/sh
/usr/bin/rsync -rvlHpogDtS --delete --password-file=/root/rsyncd.secrets  my_backup@rsync.server::mybk1 /var/www

  註1:還原與備份的寫法幾乎相同,只是把資料夾位置對調而已。
  註2:從 rSync Server 把 mybk1 區段備份的資料還原至 /var/www 底下

賦予執行權

  • 對 bk2rsync.sh 賦予執行權
    user@ob2d:# sudo chmod +x /root/bk2rsync.sh
  • 對 rsync2local.sh 賦予執行權
    user@ob2d:# sudo chmod +x /root/rsync2local.sh

備份與還原

  • 執行備份動作
    user@ob2d:# sudo /root/bk2rsync.sh
  • 設定 crontab , 定時執行 /root/bk2rsync.sh
    user@ob2d:# sudo crontab -e
    0 3 * * * /root/bk2rsync.sh
    註:每日 3 時執行 bk-b2d.sh 以備份資料
  • 從 rSync Server 還原檔案
    root@dns:~# sudo /root/rsync2local.sh


在 Windows 用 rsync 備份至 Linux 上的 rsync server



全部還原

若全部資料都已消失,要從 rSync Server 一次抓回,可以使用 FileZilla,使用 SFTP 模式取回即可。請參考下面動畫示範:
http://myip.tw/b2ddoc/LinuxBase/m6_filezilla_sftp.htm

本文小檔案

__NORICHEDITOR__

題名: Title::OB2D 上的遠端備份 rSync 服務
作者: Creator::itsmw作者群
主題/關鍵詞: Subject::ob2d, rsync, 遠端備份
簡述: Description::OB2D 上的遠端備份 rSync 服務
出版者: Publisher::MyIP itsmw 計畫
其他參與者: Contributor::itsmw作者群
日期: Date::2011-4-28
文件類型: Type::08伺服器軟體
資料格式: Format::text/html
文件識別代號: Identifier::http://myip.tw/itsmw/index.php/RSync
來源: Source::http://myip.tw/b2ddoc/LinuxBase
語言: Language::zh-TW
相關資源: Relation::http://b2d-linux.com
文件涵蓋範圍: Coverage::跨 Windows 與 Linux 平台
版權規範: Rights::GNU Free Documentation License 1.2