最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
centos系统inotify结合rsync实时同步文件
时间:2015-09-06 编辑:简简单单 来源:一聚教程网
安装rsync工具
um install rsync
rsync有个特别之处,既可以作为服务端在后台运行,也可以作为客户端去连接服务器,甚至可以抛弃服务端,直接在本地文件系统上进行同步。
本文讲述 inotify+rsync 打造文件实时同步系统,先讲讲它与传统的rsync 服务器之间的区别,这点非常重要,很少有人提及这个,以至于新手在配置inotify+rsync 产生疑惑。
通常而言,rsync 作为服务端监听在873端口,等待客户端来连接,对应的模式是一个服务端,多个客户端,比如:
rsync -avz --delete 10.1.1.11::web/ /var/www/
上面的例子中,只要规则允许,任何一个可以连接到10.1.1.11的机器,都可以去同步它。这种场合下,服务端10.1.1.11 是一般是权威内容的发布器,因此其内容是只读的。
在 inotify+rsync 场合中,工作模式是一个客户端,多个服务端,客户端掌握了权威内容,主动向服务端推送内容(服务端必须是可写的),例子如下:
rsync -avz --delete /var/www/ 10.1.1.11::web/ rsync -avz --delete /var/www/ 10.1.1.12::web/ rsync -avz --delete /var/www/ 10.1.1.13::web/
上面的例子就是,客户端将/var/www里的网页内容,主动推向3个服务端。
inotify 是个内核工具,能够监视文件目录的变化,客户端通过inotify 得知变化后立即主动将内容写入服务端。
所谓的原理就这么多了,关于inotify 的东西,别人都讲清楚了,不详述。
配置服务端
1 、创建并编辑文件 /etc/rsyncd.conf
uid = root gid = root address = 10.1.1.11 use chroot = no read only = no max connections = 512 log file = /var/log/rsyncd.log log format = %t %a %m %f %b pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock [web] path=/var/www/ list = yes ignore errors = yes hosts allow = 10.1.1.20 hosts deny = *
2、启动rsync 服务端
rsync --daemon -4
3、配置防火墙,开启873端口
/sbin/iptables -A INPUT -s 10.1.1.20 -p tcp --dport 873 -j ACCEPT
4、服务端配置完成,如果有多个服务端,请依葫芦画瓢。
配置客户端
1、安装rsync
yum install rsync
2、安装inotify-tools
yum install inotify-tools --enablerepo=epel
3、写个脚本,一旦 inotify 发现变化,立即触发rsync 将变化推送到服务端。
#!/usr/bin/env bash set -e src=/var/www/ web01=10.1.1.11 web02=10.1.1.12 web03=10.1.1.13 /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 $web01::web/ /usr/bin/rsync -vzrtopg --delete --progress $src $web01::web/ /usr/bin/rsync -vzrtopg --delete --progress $src $web01::web/ echo $files have been pushed to all web servers. done
4、启动脚本,并在后台运行,或者让它开机启动
chmod 755 /opt/inotify-rsync.sh /opt/inotify-rsync.sh& echo "/opt/inotify-rsync.sh&" >>/etc/rc.local
至此,inotify + rsync 全部搞定。
-
下一个: Mac OSX安装LAMP环境教程详解
相关文章
- win11内核隔离和内存完整性介绍 10-31
- win10全屏缩放设置教程 10-31
- win10系统备份出错解决教程 10-31
- win10打开软件每次都要询问解决教程 10-31
- win10更新驱动后设备出现异常解决教程 10-31
- win10一直提示找到可能不需要的应用解决教程 10-31