服务器实时同步文件 服务镜像解决方案 lsyncd

来源:互联网 发布:java最新开发面试题 编辑:程序博客网 时间:2024/06/04 19:08
标签:服务器实时同步文件 服务镜像解决方案 lsyncd
机缘巧合,听群里的兄弟提到了lsyncd这个软件,于是google了一把,发现竟然是google开源项目组的一个开源软件(相关链接http://code.google.com/p/lsyncd/)。
    眼神大致一扫,立马下载了一个进行体验:
    搭建lsyncd需要内核版本在2.6.13以上,因为它需要一个inotify的内核,这个内核的作用就是可以实时提供系统文件变化的信息,供 lsyncd来进行同步文件操作。关于inotify这个东东,我下个文件会详细介绍
测试环境:
服务器端:192.168.1.241
两个结点:192.168.1.40 192.168.1.239
操作系统:centos5.4 x86_64
需要两个软件包,rsync和lsyncd
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
wget http://lsyncd.googlecode.com/files/lsyncd-1.26.tar.gz
1.在每个结点服务器上安装rsync
tar -zxvf rsync-3.0.7.tar.gz
cd tar -zxvf rsync-3.0.7
./configure
make
make install
2.在主服务器上安装lsyncd
  主服务器为同步数据的源服务器,从服务器不需要安装lsyncd,只启动rsyncd进程即可
tar -zxvf lsyncd-1.26.tar.gz 
cd lsyncd-1.26
./configure
make
make install
3. 配置从服务器的rsync守护进程(内容如下:)
vi /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 5
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
 
[data]
path = /data
hosts allow = 192.168.1.241  #这是主服务器的ip地址
ignore errors
read only = no
保存退出后启动daemon进程。
# rsync --daemon
PS: 我们一般使用rsync都是把启动守护进程的作为主服务器,然后从服务器来同步主服务器的数据,也就是同步rsyncd.conf中tag路径下的数据,而这次刚好相反,我们需要把lsyncd服务器的数据同步至rsync服务器的tag目录。
4. 配置主服务器lsyncd服务
首先编辑配置文件
# cp lsyncd.conf.xml /etc/
# vi  /etc/lsyncd.conf.xml
<lsyncd version="1">
<settings>
<logfile    filename="/var/log/lsyncd.log"/>
<binary     filename="/usr/local/bin/rsync"/>
<pidfile    filename="/var/run/lsyncd.pid"/>
<callopts>
<option text="-avz"/>                 \\这里填写rsync的参数
<option text="--delete"/>
<option text="--force"/>
<exclude-file/>
<source/>
<destination/>
</callopts>
</settings>
<directory>
<source path="/opt/www/"/>                \\源路径
<target path="192.168.1.239::data"/>   \\目的路径
</directory>
</lsyncd>
保存退出。
启动服务:
# /usr/local/bin/lsyncd --conf /etc/lsyncd.conf.xml