linux Sersync 参数说明
Sersync 的可选功能是通过 xml 配置文件来实现的,下面来为大家解释该文件!
在该文件中,使用<!--中间是注释内容-->的方式去注释信息,注意不是我们平时#
[root@SERSYNC sersync]# cat conf/confxml.xml -n
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<head version="2.5">
3 <host hostip="localhost" port="8008"></host> #hostip 与 port 是针对插件的保留字段,对于
同步功能没有任何作用,保留默认即可。
4 <debug start="false"/> #该行为 Debug 开启开关。true 为开启 debug 模式,会在 sersync 正在
运行的控制台,打印 inotify 事件与 rsync 同步命令,生产环境一般不开启。
5 <fileSystem xfs="false"/>#对于 XFS 文件系统的用户,需要将这个选项开启,才能使 sersync 正常工
作
对于 sersync 监控的文件,会默认过滤系统的临时文件(以“.”开头,以“~”结尾),除了这些文件外,
在 6-11 行中,我们还可以自定义其它需要过滤的文件。
通过将 start 设置为 true 后可开启过滤功能,在 exclude 标签中可使用正则表达式。默认给出的两个例子
分别是过滤以“.gz”结尾的文件与过滤监控目录下的 info 路径(监控路径/info/*),可以根据需求自己添加。
但在开启的时候,自己一定要测试下,如果正则表达式出现错误,控制台会有相应提示。相比较使
用 Rsync 的 exclude 功能,被过滤的路径,不会加入监控,大大减少 Rsync 同步的通讯量
6 <filter start="false">
7<exclude expression="(.*)\.svn"></exclude>
8<exclude expression="(.*)\.gz"></exclude>
9<exclude expression="^info/*"></exclude>
10<exclude expression="^static/*"></exclude>
11 </filter>
第 12-23 行用来定义 inotify 监控参数,我们可以根据项目的特点来优化 Sersync。
通讯。因为拷贝文件到监控目录会产生 create 事件与 close_write 事件,所以如果关闭
create 事件,只监控
文件拷贝结束时的事件 close_write,同样可以实现文件完整同步。
注意:要使得
createFolder 保持为 true,如果将 createFolder 设为 false,则不会对产生的目录进行监控, 该目录下的子文件与子目录也不会被监控,所以除非特殊需要,请开启。默认情况下对创建文件(目录)事件 与删除文件(目录)事件都进行监控,如果项目中不需要删除远程目标服务器的文件(目录),则可以将 delete 参
数设置为 false,则不对删除事件进行监控。
12 <inotify>
13<delete start="true"/>
14<createFolder start="true"/>
15<createFile start="false"/>
16<closeWrite start="true"/>
17<moveFrom start="true"/>
18<moveTo start="true"/>
19<attrib start="false"/>
20<modify start="false"/>
21 </inotify>
23 <sersync>
第 24-28 行用来定义所要同步和监控的目录文件。
/opt/tongbu 目录为 sersync 主服务器本地待同步的目录,ip=“192.168.8.39”为从服务器的 ip 地址,如果
有多个服务器,依次列出来即可。name=“tongbu”,这里的 tongbu 为 rsyncd.conf 中的模块名字,即中
括号中的名称。
24<localpath watch="/opt/tongbu">
25 <remote ip="127.0.0.1" name="tongbu1"/>
26 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28</localpath>
第 29-35 行用来定义 rsync 的命令参数
在 commonParams 项,我们可以自定义
rsync 的同步参数,默认是-artuz,auth start=“false”设置为 true
的时候,使用 rsync 的认证模式传送,需要配置 user 与 passwordfile(-password-file=/etc/rsync.pas)来
使用。userDefinedPort 当远程同步目标服务器的 rsync 端口不是默认端口的时候使用(-port=874)。timeout
设置 rsync 的 timeout 事件(-timeout=100)。<ssh start=”false”/>如果开启表示 ssh 使用 rsync -e ssh
的方式进行传输。
29<rsync>
30 <commonParams params="-artuz"/>
31 <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
32 <userDefinedPort start="false"
port="874"/><!-- port=874 -->
33 <timeout start="false"
time="100"/><!--
timeout=100 -->
34 <ssh start="false"/>
35</rsync>
第 36 行用来定义失败日志脚本配置
(timeToExecute 进行设置)执行该脚本再次重新传送,然后清空该脚本。可以通过 path 来设置日志路径
36<failLog path="/tmp/rsync_fail_log.sh"
timeToExecute="60"/><!--default every 60mins execut
e once-->
第 37-42 行用来定义 Crontab 定期整体同步功能
Crontab 可以对监控路径与远程目标主机每隔一段时间进行一次整体同步,可能由于一些原因两次失败重传都 失败了,这个时候如果开启了 crontab 功能,还可以进行一次保证各个服务器文件一致,如果文件量比较大,
crontab 的时间间隔要设的大一些,否则可能增加通讯开销,schedule 这个参数是设置 crontab 的时间间隔,
默认是 600 分钟。
如果开启了 filter 文件过滤功能,那么 crontab 整体同步也需要设置过滤,否则虽然实时同步的时候文件被过
滤了,但 crontab 整体同步的时候,如果不单独设置
crontabfilter,还会将需过滤的文件同步到远程从服务器,
crontab 的过滤正则与 filter 过滤的不同,也给出了两个实例分别对应与过滤文件与目录,总之如果同时开启
了 filter 与 crontab,则要开启 crontab 的 crontabfilter,并按示例设置使其与 filter 的过滤一一对应。
37<crontab start="false"
schedule="600"><!--600mins-->
38 <crontabfilter start="false">
39<exclude expression="*.php"></exclude>
40<exclude expression="info/*"></exclude>
41 </crontabfilter>
42</crontab>
43<plugin start="false" name="command"/>
44 </sersync>
从 46 行到行尾,都是插件的相关信息。当 plugin 标签设置为 true 时候,在同步文件或路径到远程服务器之
后,会调用插件。通过 name 参数指定需要执行的插件。目前支持的有 command、refreshCDN、socket、
http 四种插件。其中,http 插件目前由于兼容性原因已经去除,以后会重新加入。
46 <plugin
name="command">
47<param prefix="/bin/sh" suffix="" ignoreError="true"/><!--prefix /opt/tongbu/mmm.sh suffix-
->
48<filter start="false">
49 <include expression="(.*)\.php"/>
50 <include expression="(.*)\.sh"/>
51</filter>
52 </plugin>
第 54-58 行为插件 socket 的相关配置
socket 插件,开启该模块,则向指定 ip 与端口发送 inotify 所产生的文件路径信息
54 <plugin name="socket">
55<localpath watch="/opt/tongbu">
56 <deshost ip="192.168.138.20" port="8009"/>
57</localpath>
58 </plugin>
第 59-65 行为插件 refreshCDN 的相关配置
refreshCDN 用来在同步过程中将文件发送到目地服务器后,刷新 cdn 接口。如果不想使用,则将 start 属性 48
设为 false 即可。该模块根据 chinaCDN 的协议,进行设计,当有文件产生的时候,就向 cdn 解耦发送需要刷 新的路径为止。其中 localpath watch=“/data0/htdocs/cms.xoyo.com/site/”是需要监控的目录。cdinfo 标签指定了 cdn 接口的域名,端口号,以及用户名与密码。sendurl 标签是需要刷新的 url 的前缀。regexurl 标
签中,regex 属性为 true 时候,使用 match 属性的正则语句匹配 inotify 返回的路径信息,并将正则匹配到的 部分作为 url 一部分
下面配置文件自带的意思为,如果产生文件事件为:
/data0/htdoc/cms.xoyo.com/site/jx3.xoyo.com/image/a/123.txt
经过上面的 match 正则匹配后,最后刷新的路径是:http://pic.xoyo.com/cms/a/123.txt
如果 regex 属性为 false,最后刷新的路径就是:http://pic.xoyo.com/cms/jx3.xoyo.com/images/a/123.txt
59 <plugin
name="refreshCDN">
60<localpath watch="/data0/htdocs/cms.xoyo.com/site/">
61 <cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"
/>
62 <sendurl base="http://pic.xoyo.com/cms"/>
63 <regexurl regex="false"
match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
64</localpath>
65 </plugin>
66</head>
这里列举,如何单独去运行插件
插件也可以单独使用,即不对远程目标机进行同步,直接调用插件。
只调用 command 插件
1[root@SERSYNC ~]# sersync -d -m command
只调用 refreshCDS 插件
1[root@SERSYNC ~]# sersync -d -m refreshCDN
只调用 socket 插件
1[root@SERSYNC ~]# sersync -d -m socket
只调用 http 插件
1[root@SERSYNC ~]# sersync -d -m http
linux Sersync 参数说明的更多相关文章
- Linux 内核参数说明
转载自: https://www.cnblogs.com/tolimit/p/5065761.html 因个人能力有限,不能保证所有描述都正确,还请大家集思广益,有错误的地方欢迎大家留言指正,同时也欢 ...
- linux Sersync 上配置客户端
1.安装 Rsync 并配置相关权限 在 SERSYNC 上配置 RSYNC 客户端相关权限认证: [root@SERSYNC /]# yum install rsync -y [root@SERSY ...
- sersync参数说明
-v, --verbose 详细模式输出-q, --quiet 精简输出模式-c, --checksum 打开校验开关,强制对文件传输进行校验-a, --archive 归档模式,表示以递归方式传输文 ...
- Linux 实例常用内核网络参数介绍与常见问题处理
本文总结了常见的 Linux 内核参数及相关问题.修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数. 了解参数的具体作用,且注意同类型或版本环境的内核参数可能有所 ...
- Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论
我们使用Linux作为服务器操作系统时,为了达到高并发处理能力,充分利用机器性能,经常会进行一些内核参数的调整优化,但不合理的调整常常也会引起意想不到的其他问题,本文就一次Linux服务器丢包故障的处 ...
- [转载]Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论
Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论 转载至:https://www.sdnlab.com/17530.html 我们使用Linux作为服务器操作系统时,为了达到高并发处理 ...
- Linux实例常用内核网络参数介绍与常见问题处理---重要
文章转载自:https://help.aliyun.com/knowledge_detail/41334.html 本文主要介绍如下几点内容,您可以根据实际需要选择. 查看和修改Linux实例内核参数 ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- rsync- sersync -inotify
Rsync简介 Rsync是一款优秀的.快速的.多功能的本地或远程数据镜像同步备份工具.适用于unix/linux/windows等多种平台 从软件的名称Rsync(Remote Rynhroniza ...
随机推荐
- Java——容器(Set)
[Set接口] <1>Set接口是Collection的子接口,Set接口没有提供额外的方法. <2>实现Set接口的容器类中的元素是没有顺序的,而且不可以重复. <3& ...
- [CSP-S模拟测试]:购物(柯朵莉树)
题目描述 $visit_world$有一个商店,商店里卖$N$个商品,第$i$个的价格为$a[i]$我们称一个正整数$K$是美妙的,当且仅当我们可以在商店里选购若干个商品,使得价格之和落在区间$[K, ...
- 使用java语言实现一个队列(两种实现比较)(数据结构)
一.什么是队列,换句话说,队列主要特征是什么? 四个字:先进先出 六个字:屁股进,脑袋出 脑补个场景:日常排队买饭,新来的排在后面,前面打完饭的走人,这就是队列: OK,思考一个问题,我为什么写了两种 ...
- 小白的git克隆流程clone
首先你进去你要存放代码的位置,比如将代码存放到D盘,然后在D盘中右键,点击Git Bash Here,就是说本地仓库要在D盘建立. 然后出现git 命令行界面,然后输入命令:git clone + 远 ...
- SQL Server函数大全(三)----Union与Union All的区别
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来. union和unio ...
- Linux安装nslookup命令
做DNS的人都知道nslookup命令是做什么用的,windows系统自带的.但是linux系统是不自带这个命令的,需要人手动安装.如果您不记得这是哪个软件包提供这个命令的话,那您还真会有些麻烦了.下 ...
- Oracle Flashback Drop
Ensure that the prerequisites described in Prerequisites of Flashback Drop are met. The following li ...
- PJSIP Socket 模型
前些日子为解决项目中问题调试到PJSIP Socket收发数据部分 ,好记性不如烂笔头,记录下 PJSIP 使用的Socket 模型 ,以备后用. 不同平台下PJSIP采用不同的 Socket模型,W ...
- jmeter接口测试初体验
今天初体验了一把jmeter,把操作的一些经历贴出来,督促自己进步.等逐步掌握后再次回首时,希望是有所思的,欣慰的! jmeter: Apache JMeter是Apache组织开发的基于Java的压 ...
- UI自动化之特殊处理三(日期控件\表格\富文本)
日期控件\表格\富文本也是一些常遇到的需要特殊处理的定位 目录 1.日期控件 2.表格 3.富文本 1.日期控件 第一种:输入框属性为:readonly="readonly" # ...