用 rsync 作異地備份

    Linux 要作異地備份最簡單的方式就是使用 rsync 這個工具,簡單的介紹它的優缺點及使用方式:

    優點:

    1. 容易安裝,可跨平台作備份,適用各種 Linux 發行版、UNIX甚至在 Windows 也可以用。
    2. 可作差異性備份,提高重複資料的備份效率。
    3. 容易設定
    4. command-line 操作介面,容易整合自動化工作。
    5. 多主機備份時,可多對一集中化資料儲存。

    缺點:

    1. 對於大量檔案數的資料,備份效率差。
    2. 資料即時同步性差,僅適用離線式的備份模式。
    3. 對於目錄層過多的資料,備份效率差。
       

    其他的解決方案:

    系統環境

    主機端:儲存備份資料的目的主機 (需要啟動 rsync 服務)
    用戶端:原始資料的來源主機
    備份流程為 用戶端 -> 主機端

    安裝所需套件

    主機端及用戶端都需要安裝 rsync 套件,在 CentOS 直接使用 yum install rsync。

    主機端設定

    新增設定檔 /etc/rsyncd.conf

    [backup_1]
    path = /backup/directory/path/1
    auth users = user1
    uid = root
    gid = root
    secrets file = /etc/rsyncd.secrets
    read only = no
    [backup_2]
    path = /backup/directory/path/2
    auth users = user2
    uid = root
    gid = root
    secrets file = /etc/rsyncd.secrets
    read only = no
    
    

    *[backup_1].[backup_2] 自行修改正確值
    *path 自行修改正確值
    *auth users 自行修改正確值

    新增密碼檔 /etc/rsyncd.secrets

    user1:pass1
    user2:pass2
    

    *帳號:密碼 自行修改正確值

    #chmod 600 /etc/rsyncd.secrets

    開機時自動起動
    #chkconfig rsync on
    #service xinetd restart

    TPs:

    RSYNC 服務預設使用 port 873 (TCP),Rsync Server 端必須開啟

    用戶端設定

    用戶端不需要啟動 rsyncd daemon,只需要用到 rsync 指令。

    對應主機端的設定,新增密碼檔 /root/rsync-client.secrets,用戶端的密碼檔只需要輸入密碼,不用帳號。

    pass1
    

    #chmod 600 /root/rsync-client.secrets

    執行下述指令可以開始作備份
    #rsync -av --delete --password-file=/root/rsync-client.secrets /source/dir/path user1@主機端位址::backup_1

    user1 對應主機端設定
    backup_1 對應主機端設定

    Q&A
    Q:  另一種方式,不需要啟動 Rsync 服務,只需要啟動 SSH 服務

    A:在傳送端執行

    # rsync -a source username@remote_host:/path/to/destination
    或
    # rsync -a -e ssh source/ username@remote_host:/path/to/destination
    # rsync -av --delete -e ssh <source_dir/> username@remote_host:/path/to/destination 
    

    以上就可以完成異地檔案同步,不過執行時會提示輸入SSH 密碼,這要讓它自動化,造成困擾,要避免密碼提示有兩種方式

    • 來源目錄不要使用 source_dir/*,必須去除星號,否則來源端目錄的檔案被刪除後,不會同步到目的端目錄。

    延伸閱讀

    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core