首页 > 网管 > 服务器 > 正文

lsyncd与rsync实现实时自动同步的配置

2020-05-27 13:23:02
字体:
来源:转载
供稿:网友

   一、rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了—remote sync

  特性如下:

  1、可以镜像保存整个目录树和文件系统。

  2、可以很容易做到保持原来文件的权限、时间、软硬链接等等。

  3、无须特殊权限即可安装。

  4、优化的流程,文件传输效率高。

  5、可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

  6、支持匿名传输。

  lsyncd的功能:

  (1)开源软件lsyncd采用inotify原理监听某一目录,如果目录内发生增、删、改、利用rsync协议自动同步到多个服务器

  (2)inotify,从kernel 2.6.13开始正式并入内核,RHEL5支持

  (3)可以本地多点目录的监控并实现到远程目录的同步

  (4)在rsync client上通过lsyncd监控并推送数据给rsync server的rsync daemon,rsync server接收lsyncd推送过来的数据,并写入本地磁盘

  (5)官方介绍:http://code.google.com/p/lsyncd

  注意:而对于那种实时都在变化的数据(例如:数据库),那么这种数据的同步,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

  (2)创建用于同步数据的目录(rsync服务器端)

  作用:该目录用于存放lsyncd推送过来的数据www.111Cn.net

 代码如下  

    [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)创建用于同步数据的目录(rsync客户端)

  作用:该目录用于存放将要同步给rsync server的数据

 代码如下  

    [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 #保存将要被同步的数据的目录www.111cn.net     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/”/>     #注意区别:”/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目录情况

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表