sersync可选功能是通过xml配置文件来实现的,基本配置文件如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host>
<debug start="false"/>
<fileSystem xfs="false"/>
<filter start="false">
<exclude expression="(.*)\.svn"></exclude>
<exclude expression="(.*)\.gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
<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="/usr/htmltest">
<remote ip="192.168.28.232" name="tongbu1"/>
</localpath>
<rsync>
<commonParams params="-artuz"/>
<auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
<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>
<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>
<plugin name="socket">
<localpath watch="/opt/tongbu">
<deshost ip="192.168.138.20" port="8009"/>
</localpath>
</plugin>
<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>
</head>
下面做逐行的进行解释说明:
<host hostip="localhost" port="8008"></host>
hostip与port是针对插件的保留字段,对于同步功能没有任何作用,保留默认即可。
filter文件过滤功能
对于sersync监控的文件,会默认过滤系统的临时文件(以“.”开头,以“~”结尾),除了这些文件外,可以自定义其他需要过滤的文件。
<filter start="false">
<exclude expression="(.*)\.svn"></exclude>
<exclude expression="(.*)\.gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
将start设置为 true,在exclude标签中,填写正则表达式,默认给出两个例子分别是过滤以".gz"结尾的文件与过滤监控目录下的info路径(监控路径/info/*),可以根据需要添加,但开启的时候,自己测试一下,正则表达式如果出现错误,控制台会有提示。相比较使用rsync 的exclude功能,被过滤的路径,不会加入监控,大大减少rsync的通讯量。
inotify监控参数设定(优化)
对于inotify监控参数可以进行设置,根据您项目的特点优化srsync。
<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>
对于大多数应用,可以尝试把createFile(监控文件事件选项)设置为false来提高性能,减少 rsync通讯。因为拷贝文件到监控目录会产生create事件与close_write事件,所以如果关闭create事件,只监控文件拷贝结束时的事 件close_write,同样可以实现文件完整同步。
注意:强将createFolder保持为true,如果将createFolder设为false,则不会对产生的目录进行监控,该目录下的子文件与子目录也不会被监控。所以除非特殊需要,请开启。
默认情况下对创建文件(目录)事件与删除文件(目录)事件都进行监控,如果项目中不需要删除远程目标服务器的文件(目录),则可以将delete 参数设置为false,则不对删除事件进行监控。
Debug开启
<debug start="false"/>
设置为true,开启debug模式,会在sersync正在运行的控制台,打印inotify事件与rsync同步命令。
XFS文件系统
<fileSystem xfs="false"/>
对于xfs文件系统的用户,需要将这个选项开启,才能使sersync正常工作
文件监控与远程同步设置
<sersync>
<localpath watch="/usr/htmltest">
<remote ip="192.168.28.232" name="tongbu1"/>
</localpath>
详见sersync2 完全安装配置说明(一) ----基本功能使用
Rsync参数配置
<rsync>
<commonParams params="-artuz"/>
<auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
commonParams可以用户自定义rsync参数,默认是-artuz
auth start="false" 设置为true的时候,使用rsync的认证模式传送,需要配置user与passwrodfile(--password-file=/etc/rsync.pas),来使用。userDefinedPort 当远程同步目标服务器的rsync端口不是默认端口的时候使用(--port=874)。timeout设置rsync的timeout时间(--timeout=100)。ssh 使用rsync -e ssh的方式进行传输。
失败日志脚步配置
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60min
对于失败的传输,会进行重新传送,再次失败就会写入rsync_fail_log,然后每隔一段时间(timeToExecute进行设置)执行该脚本再次重新传送,然后清空该脚本。可以通过path来设置日志路径。
Crontab定期整体同步功能
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.gz"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
crontab可以对监控路径与远程目标主机每隔一段时间进行一次整体同步,可能由于一些原因两次失败重传都失败了,这个时候如果开启了crontab功能,还可以进一步保证各个服务器文件一致,如果文件量比较大,crontab的时间间隔要设的大一些,否则可能增加通讯开销。schedule这个参数是设置crontab的时间间隔,默认是600分钟
如果开启了filter文件过滤功能,那么crontab整体同步也需要设置过滤,否则虽然实时同步的时候文件被过滤了,但crontab整体同步的时候如果不单独设置crontabfilter,还会将需过滤的文件同步到远程,crontab的过滤正则与filter过滤的不同,也给出了两个实例分别对应与过滤文件与目录。总之如果同时开启了filter与crontab,则要开启crontab的crontabfilter,并按示例设置使其与filter的过滤一一对应。
插件设置
<plugin start="false" name="command"/>
当设置为true的时候,将文件同步到远程服务器后会调用name参数指定的插件。详见请看
插件设置。
分享到:
相关推荐
3.sersync安装与配置 - 1 - 3.1在主服务器上安装配置sresync - 2 - 3.2启动sersync - 2 - 3.3整体同步 - 3 - 3.4查看启动参数帮助 - 3 - 3.5指定配置文件 - 3 - 3.6指定默认的线程池的线程总数 - 3 - 3.7不进行同步...
### sersync2完全安装配置说明(二):可选功能与XML高级配置 #### XML配置文件概述 `sersync2`是一款强大的文件同步工具,它不仅能够实现基础的文件同步,还支持丰富的可选功能及高级配置。本文将详细介绍其XML...
2. 安装 Sersync:安装 Sersync 支持包,包括 Sersync 的二进制文件和配置文件。 3. 配置 Sersync:配置 Sersync 的服务启动参数、日志路径、端口设置等。 Sersync 配置文件说明 Sersync 的配置文件位于 /etc/...
在安装和配置完成后,我们可以使用 rsync 和 sersync 实现文件同步: ``` # /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/etc/rsyncd.conf ``` ``` # /usr/local/sersync2/bin/sersync -r /usr...
安装sersync后,需要编写配置文件来定义同步任务。配置文件通常包含源路径、目标路径、同步模式(单向/双向)、过滤规则等内容。配置完成后,启动sersync服务,即可开始监控和同步。 五、实际应用场景 1. 数据备份...
安装完成后,需要编写`sersync`的配置文件,定义同步源和目标,以及相关的同步选项。配置文件通常位于`/etc/sersync.conf`,可以根据实际需求进行定制。 配置完成后,可以手动测试同步,确认无误后,可以通过`...
Linux下的`sersync`工具是一款高效、实时的文件同步软件,尤其适用于服务器之间的数据备份与同步。它基于rsync算法,具有增量同步、错误恢复、并发传输等特性,能够极大地提高数据同步效率。本文将详细介绍`sersync`...
如图所示,需要在同步主服务器上配置sersync,在同步目标服务器配置rsync,并在目标服务器开启rsync守候进程,这样在主服务器产生的文 件,就会被sersync实时同步到多个目标服务器。在centos系统下默认已经安装了...
A主机 加载配置文件并启动 /opt/sersync/sersync2 -d -r -o /opt/sersync/confxml.xml A主机检查sersync是否运行 ps aux | grep 'sersync'|grep -v 'grep' A主机sersync成功运行后,B主机的/var/www/html目录下...
### sersync实时同步操作详解 #### 一、概述 实时数据同步是在多个系统之间保持数据一致性的关键方法之一。本文档将详细介绍如何在两台Linux系统之间使用sersync进行实时同步操作。通过本教程,您将学习到完整的...
**安装与配置 Sersync2** 1. **安装**: - 下载 Sersync2 的二进制文件并解压: ``` tar -xvf sersync2.5_32bit_binary_stable_final.tar.gz ``` - 将解压后的文件放置于合适位置,如 `/usr/local/sersync2`。...
`sersync2`是一款强大的文件同步工具,其插件系统允许用户自定义文件变更后的处理方式,例如执行脚本、刷新CDN缓存等。在本文中,我们将深入探讨`sersync2`的插件基本配置和使用方法。 首先,我们需要了解`<plugin>...
Sersync 是金山的周洋开发的一款基于 inotify + rsync 的大量文件的多服务器自动同步程序。 Sersync 使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件,被监听目录下如果有文件发生修改,sersync 将通过...
总的来说,sersync 结合 rsync 提供了一种强大的多目录同步方案,它允许你在多台服务器间高效地保持数据一致性,同时提供了高级的配置选项来满足不同场景的需求。对于需要在分布式环境中保持文件同步的 IT 管理员来...
sersync2配置文件,debug模式要关闭,端口最还修改下
以上知识点详尽描述了在CentOS 7环境下,通过Rsync与Sersync实现文件实时同步的配置过程,包括前期准备工作、目标服务器和源服务器的具体配置步骤、服务的启动与检查以及如何提高同步效率和安全性。
从环境准备到配置SELinux和firewalld,再到分别配置目标服务器与源服务器的Rsync和Sersync服务,以及启动服务与管理操作,每一步都详细阐述,确保读者能够真实有效地进行数据同步配置。 #### 实践检验与适用场景 ...
1. 首先,在所有需要同步的服务器上安装并配置sersync。 2. 使用sersync实时监听和同步文件变化。 3. 设置定时任务(如Cron),定期运行Rsync进行全量同步和一致性检查。 例如,创建一个Cron任务: ```bash 0 0 * ...