rsync+inotify搭建实时同步系统
原创
©著作权归作者所有:来自51CTO博客作者296329981的原创作品,请联系作者获取转载授权,否则将追究法律责任
系统环境 :
节点名称 内核版本 用途 ip地址 网页数据路径 充当角色
web1 2.6.18-194.el5 服务节点1 192.168.18.77 /data/web rsync服务端
web2 2.6.18-194.el5 服务节点2 192.168.18.78 /data/web rsync服务端
web3 2.6.18-194.el5 服务节点3 192.168.18.79 /data/web rsync服务端
Server 2.6.18-194.el5 内容发布节点 192.168.18.76 /data/web/wwwroot (充当rsync客户端的角色)
Inotify-tools是监控文件系统变化的工具,因此必须安装在内容发布节点上
内容发布节点 (安装) 服务节点 (安装)
inotify-tools rsync
rsync
在三个服务节点上配置
1、安装
#tar fxz
rsync-3.0.4.tar.gz
#cd
rsync-3.0.4
rsync-3.0.4]#./configure
rsync-3.0.4]#make && make install
2、配置rsync.conf文件
web1节点的rsyncd.conf(此文件默认没有,可手动创建,web2、web3文件类似)
#more /etc/rsync.conf
uid = nobody
gid = nobody
use chroot = no
max connections
= 10
strict modes =
yes
pid file =
/var/run/rsyncd.pid
lock file =
/var/run/rsync.lock
log file =
/var/log/rsyncd.log
[web1]
path = /data/web/
comment = web file
ignore errors
read only = no
write only = no
hosts allow =
192.168.18.76
hosts deny = *
list = false
uid = root
gid = root
auth users = repluser1
secrets file =
/etc/rep1.pass
3、创建密码文件并设定600权限
#vim /etc/rep1.pass
username:passwd
#chmod 600
/etc/rep1.pass
4、启动守护进程
# /usr/bin/rsync --daemon
# ps -ef |grep rsync
root 8662
1 0 17:37 ? 00:00:00 /usr/bin/rsync --daemon
在内容发布节点上配置
1、安装rsync与inotify
查看内核是否支持inotify
#ll /proc/sys/fs/inotify
-rw-r--r-- 1
root root 0 01-22 18:59 max_queued_events
-rw-r--r-- 1
root root 0 01-22 18:59 max_user_instances
-rw-r--r-- 1
root root 0 01-22 18:59 max_user_watches
如果有上面3项输出,表示系统默认支持inotify
#tar fxz inotify-tools-3.14.tar.gz
#cd inotify-tools-3.14
inotify-tools-3.14]#./configure
inotify-tools-3.14]#make
&& make install
inotify-tools-3.14]#ll /usr/local/bin/inotifywa*
-rwxr-xr-x 1
root root 47208 01-17 11:57 /usr/local/bin/inotifywait
-rwxr-xr-x 1
root root 43538 01-17 11:57 /usr/local/bin/inotifywatch
安装完成后会生成上面两个指令
2、在内容发布节点上创建密码文件
#vim
/etc/server.pass
#more /etc/server.pass
passwd
3、在内容发布节点上创建脚本
#vim rsync.sh
#!/bin/bash
host1=192.168.18.77
host2=192.168.18.78
host2=192.168.18.79
src=/data/web/webroot/
dst1=rep1
dst2=rep2
dst3=rep3
user1=repluser1
user2=repluser2
user2=repluser3
/usr/local/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 --password-file=/etc/server.pass $src $user1@$host1::$dst1 &&
/usr/bin/rsync
-vzrtopg --delete --progress --password-file=/etc/server.pass $src $user2@$host2::$dst2 &&
/usr/bin/rsync
-vzrtopg --delete --progress --password-file=/etc/server.pass $src $user3@$host3::$dst3 &&
echo "${files} was rsynced" >> /var/log/rsync.log
2>&1
echo
"-----------------------------------------------"
done
#chmod 755
rsync.sh
#nohup /data/shell/rsync.sh &
4、测试
在网页发布节点的/data/web/webroot/目录下增、删、改文件,看服务节点是否与发布节点一致
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
数据同步--rsync
使用rsync进行两台或多台主机直接的数据同步
rsync数据同步 -
Redhat/Centos搭建rsync+inotify实时同步
Rsync远程实时同步
同步 实时 rsync