1、部署rsync服务
2、安装inotify-tools:
这个软件可以监控目录下信息的变化;主要两个命令
inotifywait 监控信息变化
inotifywatch 统计信息变化
语法格式:inootifywait [参数] 监控目录
参数:
-e参数可以指定的监控事件主要有:
- CREATE
- CLOSE_WRITE
- DELETE
- MOVED_TO
命令格式:
3、安装sersync:把sync和inotify的功能结合了起来
这个软件yum源中没有,需要从网上下载安装。
https://github.com/wsgzao/sersync
最后编辑配置文件 confxml.xml:
截取需要修改的部分:
<filter start="false">#这是排除哪些数据不传输,false表示不过滤。
<exclude expression="(.*)\.svn"></exclude>
<exclude expression="(.*)\.gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
<inotify> #引入inotify监控事件
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="false"/>
</inotify>
<sersync>
<localpath watch="/opt/tongbu"> 指定监控目录
<remote ip="127.0.0.1" name="tongbu1"/> 指定备份服务器地址和模块名称
<!--<remote ip="192.168.8.39" name="tongbu"/>--> 可配置多个备份服务器
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-artuz"/> 指定rsync的命令参数
<auth start="false" users="root" passwordfile="/etc/rsync.pas"/> 指定rsync认证用户和密码文件
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
<plugin start="false" name="command"/>
</sersync>
#运行sersync
nohup /app/local/sersync/sersync2 -r -d -o /app/local/sersync/confxml.xml >/app/local/sersync/rsync.log 2>&1 &
nohup /app/local/sersync/sersync2 -r -d -o /app/local/sersync/img.xml >/app/local/sersync/img.log 2>&1 &
-d:启用守护进程模式
-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
-n: 指定开启守护线程的数量,默认为10个
-o:指定配置文件,默认使用confxml.xml文件
sersync没有自带停止的命令,需要使用kill命令结束服务。