通过rsync+inotify实现实时同步

需求:web服务器未做存储上的HA,为了保证主备服务器上目录及文件能够实时同步,当主服务器宕机时可快速切换到备服务器上,需将主服务器上的某些目录的文件实时同步到备服务器上

那么我选择了rsync+inotify实现实时同步

 

首先要了解是从哪台服务器同步到哪台服务器,不能弄反了,尤其是生产系统,且在生产系统中,先做测试目录,如果生产服务器上数据量不大,应先做好备份工作

 

先说环境

OS:linux rhel6.2 x86_64

192.168.10.72 安装rsync 配置rsync.conf
192.168.10.73 安装inotify,rsync

实现在72上做的操作,同时同步到73上

 

192.168.10.73上的配置

1、先确认是否安装了rsync

$ rpm -qa | grep rsync
rsync-3.0.6-9.el6_4.1.x86_64

 2、编辑配置文件

# vi /etc/rsyncd.conf
uid = root
gid = root
read only = no
use chroot = no
max connections = 512
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
log format = %t %a %m %f %b


[test]
path = /tongbu
list = no
ignore errors 
auth users = backup
hosts allow = 192.168.10.72
hosts deny = *
secrets file = /etc/rsyncd.pwd

3、编辑密码文件

# vi /etc/rsyncd.pwd
backup:123456

4、赋权操作

#chmod 600 /etc/rsyncd.conf
#chmod 600 /etc/rsyncd.pwd

5、启动服务进程

# rsync --daemon                                              //启动守护进程
# echo "rsync --daemon" >> /etc/rc.local                      //加入开机自启动

 

192.168.10.72服务器配置

安装inotify

1、编写同步脚本

# vi /tmp/rsync.sh
!/bin/bash
src=/tongbu/
dst=backup@192.168.10.73::test
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src |while read files
do
rsync -vzrtopg --delete --progress --password-file=/home/rsyncd.pwd $src $dstdone

2、编辑密码文件

# vi /home/rsyncd.pwd
123456

3、赋脚本执行权限

# chmod +x /tmp/rsync.sh
# chmod 600 /home/rsyncd.pwd

4、启动进程

# /tmp/rsync.sh &

5、加入开机自启动

# echo "/tmp/rsync.sh" >> /etc/rc.local

 

posted on 2014-09-02 09:59  博弈悠然  阅读(272)  评论(0编辑  收藏  举报