rsync+inotify 实时同步数据

环境:centos 6.6

web服务器:192.168.2.82

内容发布点:192.168.2.39

 

一、web服务器上安装rsync并配置

1、安装rsync

yum install rsync -y

2、开始配置rsync文件

mkdir /etc/rsyncd(默认没有这个文件,需要手动创建)

touch /etc/rsyncd/rsyncd.conf

ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf

vi /etc/rsyncd.conf

uid = root
gid = root

use chroot = no


#limit access to private LANs
hosts allow=192.168.2.0/255.255.255.0
hosts deny=*
max connections = 5

pid file = /var/run/rsyncd.pid

secrets file = /etc/rsyncd/rsyncd.secrets
 log file = /var/log/rsync.log

#This will log every file transferred - up to 85,000+ per user, per sync
transfer logging = yes

log format = %t %a %m %f %b
syslog facility = local3
timeout = 300

# MODULE OPTIONS
[rsync_test]
path = /rsync_test
list=yes
writeonly = false
read only = false
ignore errors
auth users = sandy
comment = test rsync

chmod -R 755 /var/run

vi /etc/rsyncd/rsyncd.secrets

sandy:123456

 

为了密码的安全性,我们把权限设为600:

chown root:root /etc/rsyncd/rsyncd.secrets

chmod 600 /etc/rsyncd/rsyncd.secrets

 

启动rsync服务:

1.以 xinetd 运行 rsync 服务

CentOS 默认以 xinetd 方式运行 rsync 服务。rsync 的 xinetd 配置文件
在 /etc/xinetd.d/rsync。要配置以 xinetd 运行的 rsync 服务需要执行如下的命令:

# chkconfig rsync on
# service xinetd restart

管理员可以修改 /etc/xinetd.d/rsync 配置文件以适合您的需要。例如,您可以修改配置行

server_args = --daemon

在后面添加 rsync 的服务选项。

2.独立运行 rsync 服务

最简单的独立运行 rsync 服务的方法是执行如下的命令:

# /usr/bin/rsync --daemon

您可以将上面的命令写入 /etc/rc.local 文件以便在每次启动服务器时运行 rsync 服务。当然,您也可以写一个脚本在开机时自动启动 rysnc 服务。

启动rsync服务:

/etc/init.d/xinetd restart

查看873端口是否起来

netstat -an | grep 873

如果看到873端口已经在侦听了,说明rsync服务已经启动

 

二、客户端安装rsync,inotify-tools及配置

1、安装rsync及配置

yum install rsync -y

客户端配置rsync,创建密码文件,以后同步加上此文件及不需要填写密码:

touch /etc/rsync_passwd

chmod 600 /etc/rsync_passwd

echo "123456">/etc/rsync_passwd(将服务器用户sandy的账号密码写入密码文件中)

2、安装inotify-tools(由于centos6.6系统中已经内置inotify了,所以无需再安装inotify,查看/proc/sys/fs/目录下是否有inotify文件夹,如果有即已经安装,如果没有则yum安装下)

yum install inotify-tools -y

 

 

三、客户端上创建内容发布点文件目录并编写实时同步脚本文件

mkdir /src

vi /crontab/rsync.sh

#!/bin/bash

/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib /src \
|while read files
do
/usr/bin/rsync -vzrtopg --delete --progress /src/ sandy@192.168.2.82::rsync_test --password-file=/etc/rsync_passwd
done

 

四、执行脚本文件并验证

1、后台执行脚本文件

sh +x /crontab/rsync.sh>/crontab/rsync.log &

开机启动:

echo 'sh +x /crontab/rsync.sh>/crontab/rsync.log &'>>/etc/rc.local

 

2、验证

客户端创建文件:

cd /src

touch test.txt

查看服务器端是否自动有了test.txt文件

cd rsync_test

ls

 

posted on 2015-12-04 11:21  luckyjinping  阅读(217)  评论(0编辑  收藏  举报