sersync的confxml.xml文件详解

<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
    <host hostip="localhost" port="8008"></host>    hostip与port是针对插件的保留字段,对于同步没有任何作用,保留默认即可。
    <debug start="false"/>			    开启debug模式,会在sersync正在运行的控制台,打印inotify事件与rsync同步命令。
    <fileSystem xfs="false"/>			    对于xfs文件系统的用户,需要将这个选项开启,才能是sersync正常工作。
<filter start="false">
		<exclude expression="(.*)\.svn"></exclude>
		<exclude expression="(.*)\.gz"></exclude>
		<exclude expression="^info/*"></exclude>
		<exclude expression="^static/*"></exclude>
</filter>

对于sersync监控的文件,会默认过滤系统的临时文件(以"."开头,以"~"结尾),除了这些文件外,可以自定义其他需要过滤的文件。

<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>

inotify监控参数,对于大多数应用,可以把createFile设置为false来提高性能,减少rsync通讯,因为拷贝文件到监控目录会产生create事件与close_write事件,所以如果关闭create事件,只监控文件拷贝时结束的事件close_write,同样可以实现文件完整同步。

注意:要将createFolder保持为true,如果将createFloder设置为false,则不会对产生的目录进行监控,该目录下的子文件与子目录也不会被监控,所以除非特殊需要,请开启。默认情况下对创建文件(目录)事件与删除文件(目录)事件都进行监控,如果项目中不需要删除远程目标服务器的文件(目录),则可以将delete参数设置为false,则不会删除事件监控。

<sersync>
		<localpath watch="/opt/tongbu">					/opt/tongbu目录为sersync主服务器本地待同步的目录,ip为从服务器的ip地址,name="tongbu1",tongbu1为rsync.conf中模块的名字。
			<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"/>      设置为true的时候,认证模式开启
			<userDefinedPort start="false" port="874"/><!-- port=874 -->
			<timeout start="false" time="100"/><!-- timeout=100 -->
			<ssh start="false"/>						如果开启就是使用 rsync -e ssh的方式进行传输
		</rsync>

		<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->			失败日志脚本配置
		如果文件同步失败,会重新传送,再次失败就会写入rsync_fail_log.sh,然后每隔一段时间(timetoexecute进行设置)执行该脚本再次重新传送,然后清空该脚本。

		<crontab start="false" schedule="600"><!--600mins-->		每隔一段时间整体同步,,如果文件量比较大,crontab的时间间隔要设的大一些,否则可能增加通讯开销。如果开启了filter文件过滤功能,那么crontab整体同步也需要设置过滤,否则虽然实时同步的时候文件被过滤了,但crontab整体同步的时候,如果不单独设置crontabfilter,还会将需要过滤的文件同步到远程服务器,crontab的过滤正则与fileter过滤的不同。
			<crontabfilter start="false">							如果同时开启了filter与crontab,则要开启crontab的crontabfilter。
			<exclude expression="*.php"></exclude>
			<exclude expression="info/*"></exclude>
			</crontabfilter>
		</crontab>

		<plugin start="false" name="command"/>				设置为true,将文件同步到远程服务器后会条用name参数指定的插件。如果需要使用插件则需要在启动实例的时候加上-m参数
    </sersync>

  

<plugin name="command">
		<param prefix="/bin/sh" suffix="" ignoreError="true"/>	<!--prefix /opt/tongbu/mmm.sh suffix-->
		<filter start="false">
			<include expression="(.*)\.php"/>
			<include expression="(.*)\.sh"/>
		</filter>
</plugin>

当同步文件完成后,会调用command插件,如同步文件是test.php,则test.php文件再改动后,调用rsync同步到远程服务器后,调用comand插件,执行/bin/sh test.php suffix >/dev/null 2>&1
如果suffix设置了,则会放在inotify事件test.php之后,如果ignoError为true,则会添加>/dev/null 2>&1,当然还可以设置command的filter,当filter为true,include可以只对正则匹配到的文件调用command。

<plugin name="socket">
		<localpath watch="/opt/tongbu">
			<deshost ip="192.168.138.20" port="8009"/>
		</localpath>
</plugin>
向指定ip与端口发送inotify所产生的文件路径信息。

  

<plugin name="refreshCDN">
		<localpath watch="/data0/htdocs/cms.xoyo.com/site/">
			<cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
			<sendurl base="http://pic.xoyo.com/cms"/>
			<regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
		</localpath>
</plugin>

在同步的过程中将文件发送到目的服务器后刷新cdn接口。改模块是根据chainaCDN的协议,进行设计,当有文件产生的时候,就向cdn接口发送需要刷新的路径位置。
localpath是需要监控的目录,cdninfo标签制定了cdn接口的域名,端口号,以及用户名与密码。
sendurl标签是需要刷新的url的前缀。regexurl标签中的,regex属性为true时,使用match 属性的正则语句匹配inotify返回的路径信息,并将正则匹配到的部分作为url一部分。

举例:
如果产生文件事件为:/data0/htdocs/cms.xoyo.com/site/jx3.xoyo.com/image/a/123.txt
经过上面的match正则匹配后,最后刷新的路径是:http://pic.xoyo.com/cms/jx3/a/123.txt
如果regex属性为false,最后刷新的路径是:http://pic.xoyo.com/cms/jx3.xoyo.com/images/a/123.txt

</head>

  

时间: 2024-10-05 23:18:46

sersync的confxml.xml文件详解的相关文章

史上最全的maven的pom.xml文件详解

史上最全的maven的pom.xml文件详解 http://www.cnblogs.com/hafiz/p/5360195.html <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h

web.xml文件详解

web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等.但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件. 1.WEB工程加载web.xml过程 经过个人测试,WEB工程加载顺序与元素节点在文件中的配置顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.WEB容器的加载顺序是:S

AndroidManifest.xml文件详解(uses-permission)

语法(SYNTAX): <uses-permissionandroid:name="string"/> 被包含于(CONTAINED IN): <manifest> 说明(DESCRIPTION): 这个属性用于给应用程序授予正确的操作的所必须的权限.这些权限是在应用程序安装时被授予的,而不是在运行时授予的. 有关更多的权限信息,请看<AndroidManifest.xml文件详解(三)>文档中“权限”介绍(http://blog.csdn.net/

[转]AndroidManifest.xml文件详解

转自:http://www.cnblogs.com/greatverve/archive/2012/05/08/AndroidManifest-xml.html AndroidManifest.xml文件详解(一) 每个应用程序在它的根目录中都必须要有一个AndroidManifest.xml文件.这个清单把应用程序的基本信息提交给Android系统,在应用程序的代码能够运行之前,这个信息系统必须建立.以下是清单文件要做的一些事情: 1. 用Java包给应用程序命名.这个包名是应用程序的唯一标识

Maven pom.xml文件详解

Maven pom.xml文件详解 一.简介 POM全称是Project Object Model,即项目对象模型. pom.xml是maven的项目描述文件,它类似与antx的project.xml文件. pom.xml文件以xml的 形式描述项目的信息,包括项目名称.版本.项目id.项目的依赖关系.编译环境.持续集成.项目团队.贡献管理.生成报表等等.总之,它包含了所有的项目 信息. <project xmlns="http://maven.apache.org/POM/4.0.0&q

testNG xml文件详解

网上看到一篇整理的非常详细的xml文件详解,分享一下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 3 <!--suite(测试套件)为根路径,仅允许出现1次,是多个test(测试用例)的集合,以下为各属性含义及取值 4 @name 必填,标记suite的名称

[Maven]Settings.xml文件详解

概要 settings.xml有什么用? 如果在Eclipse中使用过Maven插件,想必会有这个经验:配置settings.xml文件的路径. l  settings.xml文件是干什么的,为什么要配置它呢? 从settings.xml的文件名就可以看出,它是用来设置Maven参数的配置文件.并且,settings.xml是Maven的全局配置文件.而pom.xml文件是所在项目的局部配置. Settings.xml中包含类似本地仓储位置.修改远程仓储服务器.认证信息等配置. settings

XML文件详解以及解析

一.xml基础详解: 1.概述: xml:即可扩展标记语言,xml是互联网数据传输的重要工具,它可以跨越互联网任何的平台,不受编程语言和操作系统的限制,可以说它是一个拥有互联网最高级别通行证的数据携带者.xml是当前处理结构化文档信息中相当给力的技术,xml有助于在服务器之间穿梭结构化数据,这使得开发人员更加得心应手的控制数据的存储和传输. Xml用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.Xml是标准通用标记语言(S

server.xml文件详解

一.server.xml文件介绍 1.server.xml作用 Server.xml配置文件用于对整个容器进行相关的配置. 2.server.xml文件的配置元素列表 <Server>:是整个配置文件的根元素.表示整个Catalina容器. <Connector>:连接器,负责接收客户的请求,以及向客户端回送响应的消息. <Engine>:为特定的Service处理所有的请示.每个Service只能包含一个Engine元素,它负责接收和处理此Service所有的连接器收