一、概述
一般rsync軟件是通過crond這支后臺進行(計劃任務)來實現(xiàn)自動同步數(shù)據,如今已有更好的開源軟件來代替使用crond了,那就是lsyncd( Live Syncing (Mirror) Daemon),它的工作原理:監(jiān)視本地(rsync client)的目錄,當源數(shù)據有文件或目錄更新時,更新本地文件或目錄到遠端機器(rsync server),保持實時文件同步,但是它更新數(shù)據時需要遠端rsync server運行rsync demon
配置環(huán)境如下
(1)需要配置rsyncd.conf文件的一端,稱為rsync server
(2)不需要配置rsyncd.conf文件的一端,稱為rsync client
(3)本次環(huán)境如下
rsync服務器:192.168.0.53(安裝rsync)
rsync客戶端:192.168.0.54(安裝rsyncd+lsyncd)
lsyncd的功能:
(1)開源軟件lsyncd采用inotify原理監(jiān)聽某一目錄,如果目錄內發(fā)生增、刪、改、利用rsync協(xié)議自動同步到多個服務器
(2)inotify,從kernel 2.6.13開始正式并入內核,RHEL5支持
(3)可以本地多點目錄的監(jiān)控并實現(xiàn)到遠程目錄的同步
(4)在rsync client上通過lsyncd監(jiān)控并推送數(shù)據給rsync server的rsync daemon,rsync server接收lsyncd推送過來的數(shù)據,并寫入本地磁盤
(5)官方介紹:http://code.google.com/p/lsyncd
注意:而對于那種實時都在變化的數(shù)據(例如:數(shù)據庫),那么這種數(shù)據的同步,DRBD技術是一個更好的選擇
二、軟件的下載與安裝
1、服務器端(rsync)
(1)下載并安裝rsync
[root@example1 ~]# wget http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
[root@example1 ~]# tar zxvf rsync-3.0.7.tar.gz
[root@example1 ~]# ./configure --prefix=/usr/local/rsync --with-rsyncd-conf=/usr/local/rsync/etc/rsyncd.conf --disable-ipv6 && make && make install
(3)創(chuàng)建用于同步數(shù)據的目錄(rsync服務器端)
作用:該目錄用于存放lsyncd推送過來的數(shù)據
[root@example1 ~]# mkdir /tmp/share/
[root@example1 ~]# chown -R root:root /tmp/share;
2、客戶端(lsyncd+rsync)
(1)下載并安裝rsync,無需配置rsyncd.conf
[root@example2 ~]# wget http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
[root@example2 ~]# tar zxvf rsync-3.0.7.tar.gz
[root@example2 ~]# ./configure --prefix=/usr/local/rsync --disable-ipv6 && make && make install
(2)下載并安裝lsyncd
[root@example2 ~]# wget http://lsyncd.googlecode.com/files/lsyncd-1.26.tar.gz
[root@example2 ~]# tar zxvf lsyncd-1.26.tar.gz
[root@example2 ~]# ./configure --prefix=/usr/local/lsyncd --enable-xml-config && make && make install
(3)創(chuàng)建用于同步數(shù)據的目錄(rsync客戶端)
作用:該目錄用于存放將要同步給rsync server的數(shù)據
[root@example2 ~]# mkdir /tmp/share
[root@example2 ~]# chown -R root:root /tmp/share;
三、配置rsync服務器端與rsync客戶端
1、配置rsync服務器端
1)配置rsync
[root@example1 ~]# mkdir /usr/local/rsync/etc
[root@example1 ~]# vi /usr/local/rsync/etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 4
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[share]
path = /tmp/share #保存將要被同步的數(shù)據的目錄
comment = My Share Documents
hosts allow = 192.168.0.54 #允許訪問的主機IP
hosts deny = 0.0.0.0/32
list = yes
ignore errors = yes
read only = false #是否只讀
2)配置lsyncd
[root@example1 ~]# mkdir /usr/local/lsyncd/etc
[root@example1 lsyncd-1.26]# cp lsyncd.conf.xml /usr/local/lsyncd/etc/
[root@example1 lsyncd-1.26]# ln -sf /usr/local/lsyncd/etc/lsyncd.conf.xml /etc/lsyncd.conf.xml
[root@example1 ~]# vi /usr/local/lsyncd/etc/lsyncd.conf.xml
<lsyncd version="1">
<settings>
<logfile filename="/var/log/lsyncd.log"/>
<binary filename="/usr/local/rsync/bin/rsync"/>
<pidfile filename="/var/run/lsyncd.pid"/>
<callopts>
<option text="-avz"/>
<option text="--delete"/>
<option text="--force"/>
<exclude-file/>
<source/>
<destination/>
</callopts>
</settings>
<directory>
<source path="/tmp/share/"/>
#注意區(qū)別:"/tmp/share/" 與 "/tmp/share"
<target path="192.168.0.53::share"/>
</directory>
</lsyncd>
2、配置rsync客戶端
[root@example2 ~]# mkdir /usr/local/rsync/etc
[root@example2 ~]# touch /usr/local/rsync/etc/rsyncd.conf
三、啟動相關服務并測試
1、rsync服務器端
[root@example1 ~]# /usr/local/rsync/bin/rsync --daemon
2、rsync客戶端
[root@example2 ~]# /usr/local/rsync/bin/rsync --daemon
[root@example2 ~]# /usr/local/lsyncd/bin/lsyncd --conf /usr/local/lsyncd/etc/lsyncd.conf
3、測試
先在rsync client的/tmp/share/目錄進行增加、刪除文件,然后再查看rsync server上的/tmp/share目錄情況