博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rsync+inotify 实现实时同步
阅读量:5877 次
发布时间:2019-06-19

本文共 1909 字,大约阅读时间需要 6 分钟。

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

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

[root@test1 inotify-tools-3.13]# uname -r2.6.32-71.el6.i686  #支持 还需要看看是否安装了inotify[root@test1 inotify-tools-3.13]# ll /proc/sys/fs/inotify/total 0#这个里面的东西是inotify的接口用于限制内存大小-rw-r--r-- 1 root root 0 Aug 18 19:57 max_queued_events  #表示调用init时分配到instance中排队的event的最大数目,超出就会被丢弃-rw-r--r-- 1 root root 0 Aug 18 19:57 max_user_instances #表示一个real id user 可创建instance的最大数目-rw-r--r-- 1 root root 0 Aug 18 19:57 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. 1 root root 32010 Aug 18 19:50 /usr/local/bin/inotifywait #用于等待文件或者文件集上的特定事件-rwxr-xr-x. 1 root root 33971 Aug 18 19:50 /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 filedo     ${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.logdone

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

 

转载于:https://www.cnblogs.com/pping/p/3883920.html

你可能感兴趣的文章
memcached 分布式聚类算法
查看>>
禁止body滚动允许div滚动防微信露底
查看>>
Xtreme8.0 - Kabloom dp
查看>>
jquery css3问卷答题卡翻页动画效果
查看>>
MDK5.00中*** error 65: access violation at 0xFFFFFFFC : no 'write' permission的一种解决方法
查看>>
Android 集成支付宝支付详解
查看>>
SQL分布式查询、跨数据库查询
查看>>
C#------连接SQLServer和MySQL字符串
查看>>
Arcgis Licensemanager 不能启动的原因之一(转载)
查看>>
(原)Android在子线程用handler发送的消息,主线程是怎么loop到的?
查看>>
$digest already in progress 解决办法——续
查看>>
虚拟机 centos设置代理上网
查看>>
Struts2中Date日期转换的问题
查看>>
mysql 数据类型
查看>>
Ubuntu 设置当前用户sudo免密码
查看>>
设置tomcat远程debug
查看>>
android 电池(一):锂电池基本原理篇【转】
查看>>
Total Command 常用快捷键
查看>>
ionic 调用手机的打电话功能
查看>>
怎么使用阿里云直播服务应用到现在主流直播平台中
查看>>