inotify:这个可以监控文件系统中的添加,修改,删除,移动等事件

inotify的特性需要linux内核2.6.13以上的支持

[root@test1 inotify-tools-3.13]# uname -r
2.6.-.el6.i686 #支持 还需要看看是否安装了inotify
[root@test1 inotify-tools-3.13]# ll /proc/sys/fs/inotify/
total #这个里面的东西是inotify的接口用于限制内存大小
-rw-r--r-- root root Aug : max_queued_events #表示调用init时分配到instance中排队的event的最大数目,超出就会被丢弃
-rw-r--r-- root root Aug : max_user_instances #表示一个real id user 可创建instance的最大数目
-rw-r--r-- root root Aug : max_user_watches #表示inotify可监控的最大目录文件上限,如果目录文件过多可以把这个值调大点

光有inotify还不够,还要安装inotify-tools

[root@test1 ~]# wget http://sourceforge.net/projects/inotify-tools/files/latest/download/inotify-tools-3.13.tar.gz
[root@test1 ~]# tar zxf inotify-tools-3.13.tar.gz
[root@test1 ~]# cd inotify-tools-3.13
[root@test1 ~]#./configure
[root@test1 ~]#make && make install
[root@test1 inotify-tools-3.13]# ll /usr/local/bin/inotifywa*
-rwxr-xr-x. root root Aug : /usr/local/bin/inotifywait #用于等待文件或者文件集上的特定事件
-rwxr-xr-x. root root Aug : /usr/local/bin/inotifywatch #收集监控的文件系统统计数据,包括inotify事件发生多少次

/usr/local/bin/inotifywait

-m:始终保持事件监控状态

-r:递归查询目录

-q:打印监控事件

-e:指定要监控的事件,常见事件有,modify,delete,create和attrib

这个还可以一次同步到多台服务器,用多台rsync服务端作为客户端,在另外一台服务器上监控一个目录,当目录里面有文件发生状态和属性改变事件,就会自动触发同步到多台服务器上

rsync_inotify.sh

#!/bin/bash
#需要同步的服务器地址
Dst_Host=192.168.1.20 #源文件目录
Src_Dir=/webserver/ #需要同步的远程服务器上的模块名
Dst_Module=WEBSERVER #远程服务器上的模块认证用户
Module_UserName=sheng #rsync命令的绝对路径
Rsync_Pwd=`whereis rsync | awk '{print $2}'` /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' \
--format '%T %w%f %e' \
-e modify,delete,create,attrib $Src_Dir \
| while read file
do
${Rsync_Pwd} -vzrtopg --delete --password-file=/etc/rsyncd.pass $Src_Dir $Module_UserName@$Dst_Host::$Dst_Module
echo "${file} was rsyncd!" >> /var/log/rsync_inotify.log
done

同样也可以用这个命令扑捉到文件改变的事件,运行别的程序,比如nginx   nginx.conf文件一改变就重新加载

rsync+inotify 实现实时同步的更多相关文章

  1. linux rsync +inotify 实现 实时同步

    前言:     rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rs ...

  2. rsync + inotify 数据实时同步

    一.rsync介绍 rsync英文全称为Remote synchronization,从软件的名称就可以看出来,Rsync具有可是本地和远程两台主机之间的数据快速复制同步镜像.远程备份的功能,这个功能 ...

  3. rsync+inotify实现实时同步案例--转

    转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...

  4. Rsync+inotify实现实时同步

    1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...

  5. rsync+inotify实现实时同步案例【转】

    1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...

  6. rsync简介与rsync+inotify配置实时同步数据

    rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync ...

  7. CentOS 7 rsync+inotify实现实时同步

    测试环境如下: inotify-slave IP : 172.16.0.222 inotify-master IP : 172.16.0.233 对两台机的要求: 安装依赖包gcc: yum inst ...

  8. centos 配置rsync+inotify数据实时同步2

    一.Rsync服务简介 1. 什么是Rsync 它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“rsync算法”来使本地和远程两个主机 ...

  9. centos 配置rsync+inotify数据实时同步

    何为rsync? 定义: rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,非常适用于异地备份 何为源端和发起端? 在远程同步过程中,负责发起rs ...

  10. rsync+inotify实现实时同步案例

    转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...

随机推荐

  1. git push ‘No refs in common and none specified’doing nothing问题解决

    git push ‘No refs in common and none specified’doing nothing问题解决 输入git push origin master即可解决问题

  2. HDU 3763 CDs

    http://acm.hdu.edu.cn/showproblem.php?pid=3763 题意: 两组数据 看重复的有多少 如果每输入一个就去查找的话O(n^2) 会超时 所以可以用二法 第一组数 ...

  3. python监控tomcat日记文件

    最近写了一个用python监控tomcat日记文件的功能 实现的功能: 监控日记文件中实时过来的记录,统计每分钟各个接口调用次数,统计结果插入oracle #!/usr/bin/python # -* ...

  4. SVN 学习笔记-高级操作

    所谓高级操作,只是曲高和寡,其实都不怎么用的.但是关键时候,可能会很有用. 这个高级只是针对基本操作而言.有些操作可能也是比较基本的. 清除锁 有时候我们在操作的时候,可能系统崩溃了,或者SVN非正常 ...

  5. 七天从零基础学习android(2)--第一个安卓程序

    在环境配置的那一部分,已经把基础的环境配置好了,接下来应该实现第一个安卓程序,就是著名的hello world 先在avd里面新建一个虚拟机,并且启动它 然后该虚拟机器能够在eclipse上正常识别 ...

  6. 使用Spring Data Redis操作Redis(集群版)

    说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...

  7. 元数据的概念以及相关的操作os模块、shutil模块

    查看文件的元数据 stat [OPTION]… FILE… OPTION: -f 输出文件系统的状态,而非文件的状态 -t 显示简要格式的文件元数据信息 FILE:可同时查看多个文件的元数据信息,多个 ...

  8. maven的超级pom

    对于 Maven3,超级 POM 在文件 %MAVEN_HOME%/lib/maven-model-builder-x.x.x.jar 中的 org/apache/maven/model/pom-4. ...

  9. TeamCity - Docker创建

    // 创建Server docker run -it --name teamcity-server-instance \-v /home/tc_datadir:/data/teamcity_serve ...

  10. HDU 4786 Fibonacci Tree(生成树,YY乱搞)

    http://acm.hdu.edu.cn/showproblem.php? pid=4786 Fibonacci Tree Time Limit: 4000/2000 MS (Java/Others ...