2013年5月20日 星期一

Rsync 資料同步及異地備份


Rsync
使得本地端和遠端二部主機之間的檔案快速達到資料同步,由於它主要是傳送資料異動部份,而非每次都整份資料重從到尾再傳送一次所以資料同步速度相當地快,且 Rsync 可搭配 rsh、 ssh 甚至使用 Daemon 模式來加強傳輸資料時的安全性。

Rsync Server
step1
查詢是否有安裝rsync

[root@localhost ~]# rpm -qa | grep 'rsync'
rsync-2.6.8-3.1
#如果沒有安裝的話 請自行補上
[root@localhost ~]# yum -y install rsync
 step2
修改 /etc/xinetd.d/rsync 設定
在這邊所設定的rsync是用xinetd來做啟動的。所以如果在rsync並無特別設定的話,
則會依照xinetd.conf所設定的執行。

[root@localhost ~]# vim /etc/xinetd.d/rsync service rsync{        disable = yes  改為 no         socket_type     = stream        wait            = no        user            = root        server          = /usr/bin/rsync        server_args     = --daemon        log_on_failure  += USERID
 step3
修改rsync.conf 設定檔 (如果沒有此檔的話請自行建立)
以下所使用到的設定參數請依照需求選取設定。


[root@localhost ~]# vim /etc/rsyncd.conf###backup config###                      //註解 [web]                                   //module name            comment = backup dmz web      //說明           hosts allow = 192.168.1.222   //允許使用rsync連入的ip           hosts deny = *                //不允許連入的ip,*表示全檔           path = /home/backup/          //存放備份資料的目錄           auth users = root    //認證帳號 (要設定於rsyncd.secrets 內的帳號)           uid = root                    //用來啟動rsync server 的uid           gid = root                    //用來啟動rsync server 的gid            secrets file = /etc/rsyncd.secrets      //密碼檔存放路徑           read only = no                          //是否設定為唯讀     dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz                                          //不要對這些附檔名的檔案做壓縮

  step4
設定連線的帳號密碼


[root@localhost ~]# vim /etc/rsyncd.secretsroot:12345  (設定格式:  帳號:密碼)修改rsyncd.secrets使用權限 (很重要)[root@localhost ~]# chmod 600 /etc/rsyncd.secrets[root@localhost ~]# chown root.root  /etc/rsyncd.secrets
step5
測試看看是否都正常啟用 (rsync的port為873)

[root@localhost ~]#  netstat -tnlp | grep 873
tcp    0    0 0.0.0.0:873        0.0.0.0:*         LISTEN      4235/xinetd
[root@localhost ~]# telnet localhost 873
#若出現下列訊息表示正常
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
@RSYNCD: 29 
Rsync Client

step1
設定登入server的密碼
在client主機上只需要設定密碼就可以


[root@localhost ~]# vim /etc/rsyncd.secrets
12345  (設定格式:  密碼)
#修改rsyncd.secrets使用權限 (很重要)
[root@localhost ~]# chmod 600 /etc/rsyncd.secrets
[root@localhost ~]# chown root.root  /etc/rsyncd.secrets

step2
測試rsync是否可傳輸資料


[root@localhost ~]# /usr/bin/rsync -avrHS --delete --password-file=/etc/rsyncd.secrets  /opt root@192.168.1.122::web
#或是
[root@localhost ~]#/usr/bin/rsync -rvlHpogDtS --delete --password-file=/etc/rsyncd.secrets  /opt/ root@192.168.1.122::web
#rsync結束後會看到下列訊息
sent 19380160 bytes  received 1062 bytes  1685323.65 bytes/sec
total size is 19374133  speedup is 1.00
step3

如果剛才的同步指令沒有問題的話。就可以開始設定排程了
3.1先自行寫一個rsync 的script 用來設定排程

[root@localhost ~]# vim /root/bin/rsync.sh   #存放在/root/bin/#!/bin/sh/usr/bin/rsync -avrHS --delete --password-file=/etc/rsyncd.secrets  /opt root@192.168.1.122::web 

設定排程

#crontab -e    
 0 0 * * * /home/weithenn/rsyncweb.sh



資料來源:
http://www.weithenn.org/cgi-bin/wiki.pl?Rsync-%E8%B3%87%E6%96%99%E5%90%8C%E6%AD%A5%E5%8F%8A%E7%95%B0%E5%9C%B0%E5%82%99%E4%BB%BD#Heading15

http://ithelp.ithome.com.tw/question/10081360


沒有留言:

張貼留言