首页 > 代码库 > 通过rsync+inotify实现实时同步

通过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 rsyncrsync-3.0.6-9.el6_4.1.x86_64

 2、编辑配置文件

# vi /etc/rsyncd.confuid = rootgid = rootread only = nouse chroot = nomax connections = 512pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.loglog format = %t %a %m %f %b[test]path = /tongbulist = noignore errors auth users = backuphosts allow = 192.168.10.72hosts deny = *secrets file = /etc/rsyncd.pwd

3、编辑密码文件

# vi /etc/rsyncd.pwdbackup: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/bashsrc=/tongbu/dst=backup@192.168.10.73::testinotifywait -mrq --timefmt %d/%m/%y %H:%M --format %T %w%f%e -e modify,delete,create,attrib $src |while read filesdorsync -vzrtopg --delete --progress --password-file=/home/rsyncd.pwd $src $dstdone

2、编辑密码文件

# vi /home/rsyncd.pwd123456

3、赋脚本执行权限

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

4、启动进程

# /tmp/rsync.sh &

5、加入开机自启动

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

 

通过rsync+inotify实现实时同步