1、说明
原理:由192.168.0.5上inotify服务监测文件是否有更新,有更新(修改,删除,新建)inotify则通过rsync命令将更新的文件推向三台web服务器。
架构图:
2、在三台web上配置rsync服务
#vim /etc/rsyncd.conf#配置文件
uid = root
gid = root
use chroot = no
max connections = 5
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[www]
path=/data/httpd/wwwroot/
comment = update
ignore errors
read only = no
list = no
hosts allow = 192.168.0.0/255.255.255.0
auth users = root
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
#vim /etc/rsyncd.secrets #创建rsync证文件
#chmod 0600 /etc/rsyncd.secrets#设置权限
#rsync --daemon #启动服务
#echo "rsync --daemon" >> /etc/rc.local#开机自启动
有关rsync的详细配置,请参考如下文章:
linux下rsync服务配置一例
有关rsync安装与配置的实例教程
有关rsync服务器端配置及客户端的使用
rsync文件同步配置一例
linux rsync同步设置指南
3、配置服务端(rsync+inotify)
#mkdir -p /data/httpd/wwwroot#创建目录存放代码
(1)、安装inotify
(2)、编写同步更新脚本
#mkdir /root/bin
#cd /root/bin
#vim rsync.sh
#!/bin/bash
src=/data/httpd/wwwroot/
des=www
host="192.168.0.6 192.168.0.7 192.168.0.8"
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib $src | while read files
do
for hostip in $host
do
rsync -vzrtopg --delete --progress --password-file=/etc/rsyncd.secrets $src root@$hostip::$des
done
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done
(3)、创建rsync认证文件
(4)、启动
(5)、开机自启动
(6)、测试
在192.168.0.5上进入目录/data/httpd/wwwroot/
在三台web机上/data/httpd/wwwroot/目录可以立马看a.txt。
您可能感兴趣的文章:
rsync与inotify实现数据同步
单向实时同步文件rsync+inotify-tools的配置教程
inotify+rsync配置实例详解
rsync+inotify 文件同步配置实例
inotify-tools+rsync实时同步文件的配置方法
使用rsync与inotify实现网站程序的主从同步
Inotify自动监控文件并同步到服务器的shell脚本
使用rsync与inotify实时同步备份数据
使用inotify+csync2实现文件的双向同步
使用inotifywait实现目录监控