sersync2 同步

 

              sersync2 实时同步配置

 

 

 

自动同步文件或者是目录

实现的方式:

在同步服务器上开启sersync,将监控路径中的文件同步到目标服务器,因此需要在同步服务器配置sersync,在同步目标服务器配置rsync

实验机器的地址分配:

Rsync 服务器:   192.168.1.112

Sersync2 服务器:192.168.1.110

系统环境

[root@liyao home]# uname -a
       Linux liyao 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux
       [root@liyao home]#

一、     rsync 服务器的配置

1.       先查看下是否安装了 rsync 软件包

[root@liyao ~]# rpm -qa | grep rsync

rsync-2.6.8-3.1

[root@liyao ~]#

2.     如果系统默认安装了 rsync 软件包,我们可以使用 yum 命令将其卸载

[root@liyao ~]# yum remove -y rsync

Loaded plugins: fastestmirror

Setting up Remove Process

Resolving Dependencies

--> Running transaction check

---> Package rsync.i386 0:2.6.8-3.1 set to be erased

--> Finished Dependency Resolution

 

Dependencies Resolved

 

================================================================================

 Package         Arch           Version               Repository           Size

================================================================================

Removing:

 rsync           i386           2.6.8-3.1             installed           392 k

 

Transaction Summary

================================================================================

Remove        1 Package(s)

Reinstall     0 Package(s)

Downgrade     0 Package(s)

 

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

  Erasing        : rsync                                                    1/1

 

Removed:

  rsync.i386 0:2.6.8-3.1                                                       

 

Complete!

[root@liyao ~]#

3.     下载 rsync 3.0 的源码包

[root@liyao~]#wget-chttp://rsync.samba.org/ftp/rsync/rsync-3.0.8.tar.gz

--2011-08-20 08:05:05--  http://rsync.samba.org/ftp/rsync/rsync-3.0.8.tar.gz

Resolving rsync.samba.org... 216.83.154.106, 2001:470:1f05:1a07::1

Connecting to rsync.samba.org|216.83.154.106|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 790722 (772K) [application/x-gzip]

Saving to: `rsync-3.0.8.tar.gz'

 

100%[======================================>] 790,722      153K/s   in 5.7s   

 

2011-08-20 08:05:11 (135 KB/s) - `rsync-3.0.8.tar.gz' saved [790722/790722]

4.     将该软件包解压缩,并且进行编译安装

[root@liyao ~]# tar zxf rsync-3.0.8.tar.gz

[root@liyao ~]# cd rsync-3.0.8

[root@liyao rsync-3.0.8]# ./configure --prefix=/usr/ && make && make install

5.     建立 rsync 服务器的配置文件

uid = nobody

gid = nobody

use chroot = no

strict modes = yes

max connections = 200

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log 

[test]

path = /home/

comment = test

read only = no

write only = no

ignore errors = yes

list = yes

uid = root

gid = root

6.     启动 rsync 的服务

  [root@liyao ~]# rsync --daemon

[root@liyao ~]# netstat -npl | grep 873

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      7731/rsync         

tcp        0      0 :::873                      :::*                        LISTEN      7731/rsync 

 

二、     配置Sersync2 服务器

二进制直接可运行

wget http://sersync.googlecode.com/files/sersync2.5_64bit_binary_stable_final.tar.gz

http://sersync.googlecode.com/files/sersync2.5_32bit_binary_stable_final.tar.gz

1、将该软件包下载下来之后解压缩,并进行安装

[root@liyao ~]# tar zxf sersync2.5_32bit_binary_stable_final.tar.gz

[root@liyao ~]# ls

anaconda-ks.cfg  install.log.syslog

GNU-Linux-x86    sersync2.5_32bit_binary_stable_final.tar.gz

install.log

[root@liyao ~]# cd GNU-Linux-x86/

[root@liyao GNU-Linux-x86]# ls

confxml.xml  sersync2

[root@liyao GNU-Linux-x86]# mkdir /etc/sersync2

[root@liyao GNU-Linux-x86]# cp confxml.xml /etc/sersync2/

[root@liyao GNU-Linux-x86]# cp sersync2 /usr/bin/

# 安装该软件只要把软件中的文件拷贝到相应的目录即可

2. 修改 Sersync2 的配置文件

[root@liyao ~]# cat /etc/sersync2/confxml.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<head version="2.5">

    <host hostip="localhost" port="8008"></host>

    <debug start="false"/>

    <fileSystem xfs="false"/>

    <filter start="false">

        <exclude expression="(.*)\.svn"></exclude>

        <exclude expression="(.*)\.gz"></exclude>

        <exclude expression="^info/*"></exclude>

        <exclude expression="^static/*"></exclude>

    </filter>

    <inotify>

        <delete start="true"/>

        <createFolder start="true"/>

        <createFile start="false"/>

        <closeWrite start="true"/>

        <moveFrom start="true"/>

        <moveTo start="true"/>

        <attrib start="false"/>

        <modify start="false"/>

    </inotify>

 

    <sersync>

        <localpath watch="/home">

            <remote ip="192.168.1.112" name="test"/>

            # 指定 rsyncd 服务器的地址和备份的模块名称

            <!--<remote ip="192.168.8.39" name="tongbu"/>-->

            <!--<remote ip="192.168.8.40" name="tongbu"/>-->

        </localpath>

        <rsync>

            <commonParams params="-artuz"/>

            <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>

            <userDefinedPort start="false" port="874"/><!-- port=874 -->

            <timeout start="false" time="100"/><!-- timeout=100 -->

            <ssh start="false"/>

        </rsync>

        <failLog path="/var/log/rsync_fail.log" timeToExecute="60"/><!--default every 60mins execute once-->

# 指定日志存放的路径

        <crontab start="false" schedule="600"><!--600mins-->

            <crontabfilter start="false">

                <exclude expression="*.php"></exclude>

                <exclude expression="info/*"></exclude>

            </crontabfilter>

        </crontab>

        <plugin start="false" name="command"/>

    </sersync>

 

    <plugin name="command">

        <param prefix="/bin/sh" suffix="" ignoreError="true"/>  <!--prefix /opt/tongbu/mmm.sh suffix-->

        <filter start="false">

            <include expression="(.*)\.php"/>

            <include expression="(.*)\.sh"/>

        </filter>

    </plugin>

 

    <plugin name="socket">

        <localpath watch="/opt/tongbu">

            <deshost ip="192.168.138.20" port="8009"/>

        </localpath>

    </plugin>

    <plugin name="refreshCDN">

        <localpath watch="/data0/htdocs/cms.xoyo.com/site/">

            <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>

            <sendurl base="http://pic.xoyo.com/cms"/>

            <regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>

        </localpath>

    </plugin>

</head>

[root@liyao ~]#

3. 我们来运行如下的备份命令

在运行备份命令之前我们先看下 /home 这个目录下面有文件或者是目录

[root@liyao home]# ls -l

total 4

drwxr-xr-x 2 root root 4096 Aug 20 08:51 liyao

[root@liyao home]#

[root@liyao ~]# sersync2 -r -d -o /etc/sersync2/confxml.xml

set the system param

execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches

execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events

parse the command param

option: -r      rsync all the local files to the remote servers before the sersync work

option: -d      run as a daemon

option: -o      config xml name:  /etc/sersync2/confxml.xml

daemon thread num: 10

parse xml config file

host ip : localhost     host port: 8008

daemon start,sersync run behind the console

config xml parse success

please set /etc/rsyncd.conf max connections=0 Manually

sersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)

Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)

please according your cpu ,use -n param to adjust the cpu rate

------------------------------------------

rsync the directory recursivly to the remote servers once

working please wait...

execute command: cd /home && rsync -artuz -R --delete ./ 192.168.1.112::test >/dev/null 2>&1

run the sersync:

watch path is: /home

4. 我们到 rsyncd 服务器(1.112)的 /home 目录下看看是否有我在 1.110 /home/liyao 这个目录

[root@liyao home]# ls

liyao

[root@liyao home]#

 

那我们在从 1.110 的 /home 目录下创建 abc 目录,不用执行任何命令他会自动同步到 1.112 上

[root@liyao home]# mkdir abc

[root@liyao home]# ls

abc  liyao

[root@liyao home]#

 

我们在去 1.112 上去看下,abc 目录已经同步过来了

[root@liyao home]# ll

total 8

drwxr-xr-x 2 root root 4096 Aug 21 04:12 abc

drwxr-xr-x 2 root root 4096 Aug 21 04:05 liyao

[root@liyao home]#

 

OK ,这样我们就大功告成了。

你可能感兴趣的:(rsync)