RSYNC備份-使用daemon @ IT Ranger--Pippeng :: 隨意窩 Xuite日誌





  • Powered by Xuite
  • 累積 | 今日
    loading......
  • 站內文章搜尋
  • 文章搜尋
  • 廣告
  • 平均分數:0 顆星
    投票人數:0
    我要評分:
    1. 沒有新回應!
    200904162335RSYNC備份-使用daemon

    RSYNC備份-使用daemon

    使用Rsync daemon做異地備援的方式,就是由一台主機當主控端
    其他要備份的Client端主動向主機呼叫對應的模組,並備份的檔案傳送到備份主機上
    但這方式是不支援--rsh或-e參數的,這意味著我們不能使用ssh來做加密傳送
    ("WARNING: --rsh or -e option ignored when connecting to rsync daemon")

    首先要先安裝xinetd
    #yum install xinetd
    再來安裝rsync
    #yum install rsync
    再來設定rsync.conf
    #vi /etc/rsync.conf  (預設沒有這檔案)

    #----------設定檔內容

    motd file = /etc/rsyncd.motd            #當client登入時出現的歡迎文字,請自行建立
    log file = /var/log/rsyncd.log          #log檔位置
    pid file = /var/run/rsyncd.pid        #pid位置           
    port=873                #rsync server listen的port,預設就是tcp873
    #以上為全域設定

    [webserver]                #這個稱為module(模組)每個備份來源都要設定一個
    hosts allow = 192.168.1.21        #允許的clisnt IP
    hosts deny = *                #除上面allow設定的IP,不允許存取的Client,請設為* 全部
    comment = web server backup        #這一個模組的說明備註
    path = /backup/webserver        #這一個模組要備份的本機目的地
    uid = root                #server端備份檔案時使用的uid
    gid = root                #server端備份檔案時使用的gid
    auth users = rsync_account        #rsync client連接時的認證用戶(非系統用戶)
    secrets file = /etc/rsyncd.secrets    #rsync client連接時認證用戶的密碼檔位置(名稱跟位置可以自己定)
    read only = no                #Client是否只能讀取,要設為no這樣Client才能上傳檔案
    exclude = temp/ temp2/ *.jpg        #要排除的備份檔案或目錄,須以空格區分   

    #-------------以上

    其他更多的參數用法可以參考man或rsync的網頁
    http://everythinglinux.org/rsync/

    再來是建立密碼檔,也就是剛剛上面設定的rsync_account,
    這個認證用戶不是系統的使用者喔,是rsyncd自己的認證帳戶
    上面我們密碼檔位置設定為/etc/rsyncd.secrets

    #vi /etc/rsyncd.secrets

    rsync_account:fKdd$a371@              #格式為 帳戶:密碼

    這密碼可以設的亂一點
    建立好後一定要將權限設定為600,只能讓root可以讀寫,這是很重要的安全觀念

    #chmod 600 /etc/rsyncd.secrets

    再來就是啟動服務了
    rsync是xinetd daemon喔,所以他是由service xinetd來管理的
    啟動的方式有2種
    1.
    如果你是使用RedHat血統的Linux,你可以使用chkconfig來啟動

    #chkconfig rsync on   

    停止則是off

    #chkconfig rsync off

    不需要執行service start就可以啟動了

    2.第2種啟動方式就是傳統xinetd的啟動方式
    先設定xinetd的rsync設定

    vi /etc/xinetd.d/rsync

    service rsync
    {
            disable = no
            socket_type     = stream
            wait            = no
            user            = root
            server          = /usr/bin/rsync
            server_args     = --daemon
            log_on_failure  += USERID
    }

    只要將disable = yes 就可以了,其他使用預設
    因為rsync是屬於xinetd的daemon,所以當然是由這一個super daemon來管理啟動

    #service xinetd restart

    這樣就完成Server主控端的設定了
    你可以使用netstat來檢查

    #netstat -tupln |grep :873

    記得iptables要開啟tcp 873 port

    #----------------------------------------------以上為Server端

    再來就是Client的設定了,簡單多了
    先建立密碼檔,名稱與位置自訂

    vi /root/rsyncd.pass

    fKdd$a371@           #只要設定密碼就好,記得要跟Server端的密碼檔一樣

    一樣要把權限改成600

    #chmod 600 /root/rsyncd.pass

    在上面為什麼不需要打帳戶呢?
    因為我們rsync的認證用戶使直接打在備份指令內
    再來就只要使用rsync的指令就可以做異地備份了

    本例我們要將/backup裡面的本機備份檔再備份到我們的備份Server

    /usr/bin/rsync -avz --password-file=/root/rsyncd.pass /backup rsyncadmin@192.168.1.55::webserver

    -avz         參數可以參考上一篇
    ----password-file= 指到Client端剛剛建立的密碼檔位置
    /backup     為Client要備份的目錄
    rsyncadmin@     為剛剛在Server端密碼檔指定的私有用戶名稱
    192.168.1.55    我們Server端的IP
    webserver    這就是之前在Server設定的rsync module(模組)名稱   

    現在我們只要把rsync備份指令放到crontab就可以實現自動異地備份了

    完成


    介紹了2種Rsync的備份方式,不知道你比較喜歡哪一種
    我還是覺得第1種使用ssh做加密傳輸比較單純
    但是個有優缺啦,使用ssh比較麻煩是建立ssh-keygen
    但可以加密又不要多開一個873 port

     

    廣告

    沒有上一則|日誌首頁|沒有下一則
    回應