Rsync服務配置詳解,實現服務器間數據同步!

1.1 什麼是rsync?

rsync是Unix下的一款應用軟件,它能同步更新兩處計算機的文件與目錄,並適當利用差分編碼以減少數據傳輸。rsync中一項與其他大部分類似程序或協議中所未見的重要特性是鏡像對每個目標只需要一次傳送。rsync可拷貝/顯示目錄屬性,以及拷貝文件,並可選擇性的壓縮以及遞歸拷貝。 
在常駐模式(daemon mode)下,rsync默認監聽TCP端口873,以原生rsync傳輸協議或者通過遠程shell如RSH或者SSH伺服文件。SSH情況下,rsync客戶端運行程序必須同時在本地和遠程機器上安裝。

2.1 rsync的安裝

每個鏡像服務器(需要同步的服務器)都需要安裝rsync守護進程。

一般發行版都帶有rsync,因此我這裏直接使用yum安裝。當然在很多發行版上默認已經安裝了rsync。

[root@master ~]#rpm -qa | grep rsync            #確認是否已經安裝rsync
rsync-3.0.6-4.el5_7.1

[root@master ~]#rpm -ql rsync
/etc/xinetd.d/rsync
/usr/bin/rsync
/usr/share/doc/rsync-3.0.6
/usr/share/doc/rsync-3.0.6/COPYING
/usr/share/doc/rsync-3.0.6/NEWS
/usr/share/doc/rsync-3.0.6/OLDNEWS
/usr/share/doc/rsync-3.0.6/README
/usr/share/doc/rsync-3.0.6/support
/usr/share/doc/rsync-3.0.6/support/Makefile
/usr/share/doc/rsync-3.0.6/support/atomic-rsync
/usr/share/doc/rsync-3.0.6/support/cvs2includes
/usr/share/doc/rsync-3.0.6/support/deny-rsync
/usr/share/doc/rsync-3.0.6/support/file-attr-restore
/usr/share/doc/rsync-3.0.6/support/files-to-excludes
/usr/share/doc/rsync-3.0.6/support/git-set-file-times
/usr/share/doc/rsync-3.0.6/support/logfilter
/usr/share/doc/rsync-3.0.6/support/lsh
/usr/share/doc/rsync-3.0.6/support/mnt-excl
/usr/share/doc/rsync-3.0.6/support/munge-symlinks
/usr/share/doc/rsync-3.0.6/support/rrsync
/usr/share/doc/rsync-3.0.6/support/rsyncstats
/usr/share/doc/rsync-3.0.6/support/savetransfer.c
/usr/share/doc/rsync-3.0.6/tech_report.tex
/usr/share/man/man1/rsync.1.gz
/usr/share/man/man5/rsyncd.conf.5.gz
[root@master ~]#yum install rsync #如果你電腦沒有安裝,可以使用YUM直接安裝。

rsync是由超級守護進程xinetd來啓動的。因此需要啓動xinetd服務。

2.2 配置rsync服務器

rsync服務器主要有三個配置文件:rsyncd.conf,rsyncd.secrets和rsyncd.motd,而rsync安裝後並沒有自動創建相關配置文件,因此我們還需手動創建:

[root@master ~]# mkdir /etc/rsyncd         #創建配置目錄
[root@master ~]# touch /etc/rsyncd/rsyncd.conf              #創建主配置文件
[root@master ~]# touch /etc/rsyncd/rsyncd.secrets          #創建用戶密碼文件
[root@master ~]# chmod 600 /etc/rsyncd/rsyncd.secrets  #修改用戶密碼文件權限
[root@master ~]# touch /etc/rsyncd/rsyncd.motd            #創建定義服務信息的文件


編輯主配置文件:

[root@master ~]#vim /etc/rsyncd/rsyncd.conf 
# Minimal configuration file for rsync daemon 

# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script 
pid file = /var/run/rsyncd.pid 
port = 873   ##監聽端口 
address = 192.168.1.1  ##監聽地址 
#uid = nobody 
#gid = nobody   
uid = root 
gid = root
use chroot = yes   ##是否限制在指定目錄,爲了安裝,一般需要啓用 
read only = no
#limit access to private LANs 
hosts allow=192.168.1.0/255.255.255.0   ##允許網段 
hosts deny=*
max connections = 5 
motd file = /etc/rsyncd/rsyncd.motd
#This will give you a separate log file 
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync 
#transfer logging = yes
log format = %t %a %m %f %b 
syslog facility = local3 
timeout = 300
##定義一個同步目錄
[webhome] 
path = /var/www/html 
list=yes 
ignore errors 
auth users = apache 
secrets file = /etc/rsyncd/rsyncd.secrets  ##指定上述賬號密碼文件 
comment = web home
exclude =   data/   ##排除目錄


編輯/etc/rsyncd/rsyncd.secrets文件:

#Account and password 
apache:password123
注意:這裏賬號雖然用的是系統賬號,但是密碼是自定義的密碼。也可以用非系統用戶!


啓動使rsync生效:

[root@master ~]#/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf 


設置爲開機啓動:

[root@master ~]#echo "/usr/bin/rsync --deamon --config=/etc/rsyncd/rsyncd.conf" >> /etc/rc.d/rc.local 


Tip:這裏的啓動方式比較特殊,如果你要重啓,需要kill掉rsync的進程,再重新運行!
另外還有另外一種啓動rsync的方式,CentOS 默認以 xinetd 方式運行 rsync 服務。rsync 的 xinetd 配置文件在 /etc/xinetd.d/rsync 
要配置以 xinetd 運行的 rsync 服務需要執行如下的命令:

# chkconfig rsync on

# vim /etc/xinetd.d/rsync 
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon  --config=/etc/rsyncd/rsyncd.conf        #這裏添加rsync的服務選項!
        log_on_failure  += USERID
}

# service xinetd restart


2.3 使用rsync客戶端實現數據同步

客戶端安裝同上,額外只需配置一個密碼文件,具體如下:

 

 

[root@client01 ~]# mkdir /etc/rsyncd
[root@client01 ~]# echo "password123" > /etc/rsyncd/rsyncd.password  #創建密碼文件,密碼爲服務器端rsyncd.secrets文件中的密碼。
[root@client01 ~]# chmod 600 /etc/rsyncd/rsyncd.password


同步:

[root@client01 ~]#rsync -avzP --password-file=/etc/rsyncd/rsyncd.password [email protected]::webhome  /var/www/html/ 
#後面指定同步到本地的路徑

receiving incremental file list
./
test
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/2)


sent 81 bytes  received 147 bytes  456.00 bytes/sec
total size is 0  speedup is 0.00


說明:

--delete:本地與服務器完全一樣,如果本地存在不一樣的,則刪除,慎用

--password-file:指定密碼文件,如果不指定,則需手動輸入

-a :參數,相當於-rlptgoD,-r 是遞歸 -l 是鏈接文件,意思是拷貝鏈接文件;-p 表示保持文件原有權限;-t 保持文件原有時間;-g 保持文件原有用戶組;-o 保持文件原有屬主;-D 相當於塊設備文件; 
-z :傳輸時壓縮; 
-P :傳輸進度; 
-v :傳輸時的進度等信息

apache@IP ::webhome  用雙冒號引用主配置文件中的定義資源,也可以使用單引號跟絕對路徑

以後同步時,只會同步新增內容。

最後將上述命令加入計劃任務定時同步即可。

 

提供大家一些參數資料(原諒我要豆):http://down.51cto.com/data/1180277

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章