The configuration of real-time automatic synchronization for LSYNCD and rsync

Source: Internet
Author: User
Tags file system ftp inotify mkdir file permissions rsync

First, rsync is a Unix-like system of data mirroring backup tools, from the name of the software can be seen-remote sync

Features are as follows:

1, can be mirrored to save the entire directory tree and file system.

2, it is easy to maintain the original file permissions, time, soft and hard links and so on.

3, no special permission can be installed.

4, the optimized process, the file transmission efficiency is high.

5, can use RCP, ssh and other means to transfer files, of course, can also be connected through the direct socket.

6, support anonymous transmission.

LSYNCD's function:

(1) Open source software LSYNCD using the inotify principle to monitor a directory, if the directory to increase, delete, change, using rsync protocol to automatically sync to multiple servers

(2) inotify, from Kernel 2.6.13 began formally merged into the kernel, RHEL5 support

(3) Local multi-point directory can be monitored and implemented to the remote directory synchronization

(4) In Rsync client on the LSYNCD monitor and push data to Rsync server rsync daemon,rsync server receive LSYNCD data, and write to local disk

(5) Official introduction: HTTP://CODE.GOOGLE.COM/P/LSYNCD

Note: And for data that changes in real time (for example, a database), this data synchronization, DRBD technology is a better choice.

Second, the software download and installation

1, server side (rsync)

(1) Download and install Rsync

The code is as follows

[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) Create a directory for synchronizing data (rsync server side)

Role: This directory is used to store data LSYNCD push over www.111Cn.net

The code is as follows

[Root@example1 ~]# mkdir/tmp/share/
[Root@example1 ~]# chown-r Root:root/tmp/share;

2. Client (Lsyncd+rsync)

(1) Download and install rsync without configuring rsyncd.conf

The code is as follows

[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) Download and install LSYNCD

The code is as follows

[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) Create a directory for synchronizing data (rsync client)

Role: This directory is used to store data that will be synchronized to rsync server

The code is as follows

[Root@example2 ~]# Mkdir/tmp/share
[Root@example2 ~]# chown-r Root:root/tmp/share;

Third, configure Rsync server and rsync clients

1. Configure Rsync server Side

1) Configure Rsync

  code is as follows &nbs P;
   [root@example1 ~]# mkdir/usr/local/rsync/etc
 & nbsp;  [root@example1 ~]# vi/usr/local/rsync/etc/rsyncd.conf
    uid = root
  & nbsp GID = root
    Use chroot = no
    max connections = 4
    log fi Le =/var/log/rsyncd.log
    pid file =/var/run/rsyncd.pid
    lock file =/var/run /rsync.lock
    [share]
    path =/tmp/share #保存将要被同步的数据的目录www. 111cn.net
& nbsp;   comment = My Share Documents
    hosts allow = 192.168.0.54 #允许访问的主机IP
 &nbs p;  hosts deny = 0.0.0.0/32
    list = yes
    Ignore errors = yes
 &N bsp;  Readonly = False #是否只读

2) Configure LSYNCD

  code is as follows &nbs P;
  [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"/>
&NBSP;&Nbsp;  <option text= "–force"/>
    <exclude-file/>
    < Source/>
    <destination/>
    </callopts>
     </SETTINGS>
    <directory>
    <source path=/tmp/share /"/>
    #注意区别:"/tmp/share/"and"/tmp/share "
    <target path=" 192.168.0.53::share "/>
    </directory>
    </lsyncd>

2. Configure Rsync Client

The code is as follows

[Root@example2 ~]# Mkdir/usr/local/rsync/etc
[Root@example2 ~]# touch/usr/local/rsync/etc/rsyncd.conf

Third, start related services and test

1, rsync server side

The code is as follows

[Root@example1 ~]#/usr/local/rsync/bin/rsync–daemon

2, rsync Client

The code is as follows

[Root@example2 ~]#/usr/local/rsync/bin/rsync–daemon
[Root@example2 ~]#/usr/local/lsyncd/bin/lsyncd–conf/usr/local/lsyncd/etc/lsyncd.conf

3, testing

Add and delete files in the/tmp/share/directory of rsync client before viewing the/tmp/share directory on the rsync server

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.