rsync+inotify的使用注意事项

rsync+inotify是一个比较常用的实时同步解决方案,但是它并不是在所有的场景中都适用的,rsync+inotify比较适用的是在10台以下的一些小规模web集群中实时同步,不过在使用rsync+inotify解决方案和日常使用rsync不同,在rsync+inotify中rsync服务端需要部署多个而客户端只有一个,在rsync的客户端上做为日常内容发布的服务器从而由它把数据推送至各个各个rsync的服务端上。其中用来监控文件系统变化的工具是inotify-tools,在rsync的客户端上安装了inotify-tools后指定需要监控的文件路径,在被监控路径下文件发生变化后就可以根据相关的信息用来触发rsync来做文件推送。在Linux下支持inotify的内核最小为2.6.13,可以使用uname -r可以查看,现在Centos5以上都是是支持的都是在2.6.18以上的所以一般来说内核都是支持的。安装也很简单,在配置好epel的源后可以通过yum进行安装:yum -y install inotify-tools,在安装好后会有2个二进制文件分别是inotifywait和inotifywatch,其中用于监控文件变化的就是inotifywait,而inotifywait所使用的参数选项也很简单:

-m是要持续监视变化。 
-r使用递归形式监视目录。 
-q减少冗余信息,只打印出需要的信息。 
-e指定要监视的事件列表。 
--timefmt是指定时间的输出格式。 
--format指定文件变化的详细信息。

所以可以通过脚本挂在后台实时监控指定目录文件用来触发rsync做文件推送:

#!/bin/bash
#rsync_inotify.sh
port=873
src_dir="/data/www/"
rsyncd_user="username"
rsyncd_host="192.168.2.1"
DEST_name="backup"
password_file="/etc/.rsync.passwd"

inotifywait -mrq --timefmt ‘%Y-%m-%d %H:%M:%S‘ --format ‘%T %Xe %w%f‘ -e modify,delete,create,attrib ${src_dir} | while read line
do
    file=$(echo $line | awk ‘{print $4}‘)
    rsync -vzrLtopg --progress --delete --port=${port} ${file} --password-file=${password_file} ${rsyncd_user}@${rsyncd_host}::${DEST_name}
done

这样再把脚本后台启动后加入开机启动文件/etc/rc.local文件中,使得下次在服务器重启后还会生效:

/usr/local/scripts/rsync_inotify.sh &
时间: 2024-10-18 10:49:27

rsync+inotify的使用注意事项的相关文章

通过rsync+inotify实现文件的实时备份同步

原文参考:http://ixdba.blog.51cto.com/2895551/580280/ http://www.bamaol.com/Psy/Showposts-010000108-5048.html 一,rsync安装 目前rsync的最新版本是3.0.9 wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz tar-xvzfrsync-3.0.9.tar.gz;cdrsync-3.0.9; ./configure;make;

Rsync+Inotify+LVS实现Discuz的负载均衡

前言: 本文章转自我的个人博客 http://www.anyisalin.com 欢迎大家访问 Rsync+Inotify+LVS实现Web Service的负载均衡 实验环境: 系统: CentOS6.7 服务: LVS 类型: DR模型 机器: LVS-Director: DIP: dev eth0 172.16.100.2/24 GW: 172.16.100.254 VIP: dev eth0:0  172.16.100.1/24 GW: 172.16.100.254 LVS-RS1: 发

sersync基于rsync+inotify实现数据实时同步

一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192.168.1.243 实时同步/var/atlassian目录到从服务器. 二.实施 1.从服务器192.168.1.243 rsync服务搭建 1.1安装软件包 wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz tar xf r

rsync+inotify 备份

配置rsync+ inotify 实现实时同步    同步项目实战之rsync篇    1.多种备份方式的介绍    2.rsync实现目录备份    3.配置企业级无交互备份实战    4.配置rsync企业服务器实现实时同步备份方式:        完整备份 rsync 远程同步: rsync(Remote sync)  ==> 做数据备份rsync 客户端好处:优点:支持增量备份       选择性保存:符号链接,硬链接,文件属性,权限及时间等不变.       传输的执行压缩,适用于异地

centos6.5 rsync+inotify

Rsync+Inotify 在客户端安装,首先查看是否支持 [[email protected] ~]# ll /proc/sys/fs/inotify/ 总用量 0 -rw-r–r– 1 root root 0 7月   8 16:40 max_queued_events -rw-r–r– 1 root root 0 7月   8 16:40 max_user_instances -rw-r–r– 1 root root 0 7月   8 16:40 max_user_watches 有这2个

Rsync+Inotify实现文件分发

Linux内核从2.6.13开始支持inotify. Inotify可以监控文件系统的读取,修改,创建等状态.(更多信息请参考网上资料) 通过Rsync+Inotify(inotifywati)可以实现文件的批量分发功能. 1 查看linux是否支持inotify a) 内核至少是2.6.13 uname -r b) 存在/usr/include/sys/inotify.h,说明支持 c) 查看/proc/sys/fs/inotify/ total 0 -rw-r--r-- 1 root roo

配置rsync+inotify进行资源或代码同步

配置rsync+inotify进行资源推送 ------------------------ 主要步骤解析: 1.部署二级资源中转服务器,数据接收端--qqhrnhls,同时也是数据推送端,推送资源到下级站点 2.部署一级资源服务器(中心资源服务器),数据推送端--229服务器/阿里云服务器 3.在二级资源服务上部署rysnc同步,把资源更新到各个站点 1.部署二级资源中转服务器,数据接收端--qqhrnhls,同时也是数据推送端,推送资源到下级站点 二级中心资源服务器有:qqhrnhls.jy

rsync+inotify 实现服务器之间目录文件实时同步(转)

软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定 期做数据镜像等. 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync 在高端业务系统中 也逐渐暴露出了很多不足,首先,rsync 同步数据时,需要扫描所有文件后进行比对,进行差量传输.如 果文件数量达到了百万甚至千万量级,扫描所有

CentOS5.8 x86_64下配置rsync+inotify即时同步文件

rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样就可以解决同步数据的实时性问题.rsync+inotify我在工作中会经常用到,大家部署这种时请注意以下方面: 一.rsync服务器的uid和gid请将nobody:nobody改为www:www,因为是考虑到我们的Nginx服务器是由www:www运行的,而其对应目录很多时候有写日志或其它相关写文