使用rsync+lsync实现触发式实时同步

服务器信息

centos6.5

主:192.168.5.4 搭建lsync

从:192.168.5.3 搭建rsync

1.1 从服务器设置

# yum -y install rsync xinetd
# cp /etc/xinetd.d/rsync /etc/xinetd.d/rsync.blk
# vim /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no        →修改‘yes’为‘no’
flags = IPv6 →修改‘IPv6’为‘IPv4’
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
} 1.2.启动xinetd并设置开机启动项。

# service xinetd start

# chkconfig xinetd on

1.3.创建同步文件的存放目录。

# mkdir /home/backup

1.4.创建rsyncd.conf配置文件。

# vim /etc/rsyncd.conf

[backup]                      →名字任意

path = /home/backup       →同步文件存放路径

hosts allow = 192.168.5.4          →允许连接的主机(指定主服务器IP)

hosts deny = *

list = true

uid = root

gid = root

read only = false

2.主服务器设定。

2.1.安装rsync。

# yum -y install rsync

2.2.创建同步对象中,不需要同步的文件一览表。

# vim /etc/rsync_exclude.lst

xx

xx.txt

2.3.在主服务器,执行以下命令。

测试将主服务器/data/下文件同步到从服务器/home/backup

# rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /data 192.168.5.3::backup

3.使用Rsync + Lsync,当文件或目录发生变更时,可做到实时同步。

3.1.登录主服务器,下载安装Lsync。

# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# yum install lsyncd -y

3.2.配置lsyncd文件。

# cp /etc/sysconfig/lsyncd /etc/sysconfig/lsyncd.blk

# vim /etc/sysconfig/lsyncd

# Keep the space there for systemd. Don't nest variables without

# changing the systemd service file to use: /usr/bin/sh -c 'eval XXXX'

#

LSYNCD_OPTIONS="-pidfile /var/run/lsyncd.pid /etc/lsyncd.conf"  →去掉’‘#’

#LSYNCD_OPTIONS=" "

3.3.配置lsyncd.conf,添加以下内容:

# vim /etc/lsyncd.conf

settings{

statusFile = "/tmp/lsyncd.stat",

statusInterval = 1,

}

sync{

default.rsync,

source="/data",                        →指定需同步的源文件目录

target="192.168.5.3::backup",                   →从服务器IP:(rsyncd.conf设定的名字)

excludeFrom="/etc/rsync_exclude.lst",    →排除文件列表

}

3.4.启动lsync。

# /etc/rc.d/init.d/lsyncd start

# chkconfig lsyncd on

3.5.在主服务器,创建新测试文件。

data]# touch xx

3.6.在从服务器确认,同步成功。

# ls /home/backup

05-01 04:04