rsync+inotify 实现实时同步
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 实现实时同步的更多相关文章
- linux rsync +inotify 实现 实时同步
前言: rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rs ...
- rsync + inotify 数据实时同步
一.rsync介绍 rsync英文全称为Remote synchronization,从软件的名称就可以看出来,Rsync具有可是本地和远程两台主机之间的数据快速复制同步镜像.远程备份的功能,这个功能 ...
- rsync+inotify实现实时同步案例--转
转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...
- Rsync+inotify实现实时同步
1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...
- rsync+inotify实现实时同步案例【转】
1.1 inotify介绍 inotify是一种强大的.细粒度的.异步的文件系统事件控制机制.linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加.删除. ...
- rsync简介与rsync+inotify配置实时同步数据
rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync ...
- CentOS 7 rsync+inotify实现实时同步
测试环境如下: inotify-slave IP : 172.16.0.222 inotify-master IP : 172.16.0.233 对两台机的要求: 安装依赖包gcc: yum inst ...
- centos 配置rsync+inotify数据实时同步2
一.Rsync服务简介 1. 什么是Rsync 它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“rsync算法”来使本地和远程两个主机 ...
- centos 配置rsync+inotify数据实时同步
何为rsync? 定义: rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,非常适用于异地备份 何为源端和发起端? 在远程同步过程中,负责发起rs ...
- rsync+inotify实现实时同步案例
转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...
随机推荐
- [luoguP3606] [USACO17JAN]Building a Tall Barn建谷仓(贪心 + 线段树)
传送门 把线段都读进来然后排序,先按右端点为第一关键字从小到大排序,后按左端点为第二关键字从小到大排序. 注意不能先按左端点后按右端点排序,否则会出现大包小的情况,如下: —————— ——— — ...
- 【BZOJ2038】小Z的袜子(莫队)
题意: 给定n个数a1, a2…… an与m个询问(L,R).对于每个询问,从aL, aL+1…… aR这R-L+1个数中随机取出两个数,求这两个数相同的概率. 数据范围:1<=n,m,ai&l ...
- bitset初始化问题
在C++primer上面说,bitset可以用unsigned long来进行初始化,但是上面的例子只是采用了常数如0xffff,而在实际中,当在vs2010中,我采用unsigned long类型的 ...
- msp430入门编程35
msp430中C语言的可移植--规划软件层次
- Python()-类命名空间和对象/实例命名空间
类命名空间和对象/实例命名空间: 创建类, 就会创建一个类的名称空间, 空间:存储类的属性 属性: 静态属性:直接定义在类下面 & 和类名关联 的变量 对象属性:在类内和self关联 & ...
- poj2112 二分+floyd+多源多汇最大流
/*此题不错,大致题意:c头牛去k个机器处喝奶,每个喝奶处最多容纳M头牛,求所有牛中走的最长路的 那头牛,使该最长路最小.思路:最大最小问题,第一灵感:二分答案check之.对于使最长路最短, 用fo ...
- SpringMvc架构流程
- 框架-弹出选择框(Jquery传递Json数组)
给一个button按钮,执行方法 Json传值$("body").on("click", "#btnsure", function() { ...
- win10 powershell 验证下载的包的MD5/sha1的签名值
巧用Win10自带的PowerShell命令校验文件的Hash值(MD5.SHA1/256等) 发表于2017年3月8日由MS酋长 通常为了保证我们从网上下载的文件的完整性和可靠性,我们把文件下载下来 ...
- 一处折腾笔记:Android内嵌html5加入原生微信分享的解决的方法
有一段时间没有瞎折腾了. 这周一刚上班萌主过来反映说:微信里面打开聚客宝.分享功能是能够的(这里是用微信自身的js-sdk实现的).可是在android应用里面打开点击就没反应了:接下来狡猾的丁丁在产 ...