SERSYNC服务
inotiry图片参考
sersync图片参考
inotify文字教程
该软件对系统有要求,内核2.6以上,并且有如下目录,后面会讲解三个文件用途
[root@jokerpro ~]# uname -r
3.10.0-693.2.2.el7.x86_64
[root@jokerpro ~]# ls -l /proc/sys/fs/inotify/
-rw-r--r-- 1 root root 0 May 31 10:32 max_queued_events
-rw-r--r-- 1 root root 0 May 31 10:32 max_user_instances
-rw-r--r-- 1 root root 0 May 31 10:32 max_user_watches
安装该软件
1,安装inotify-tools
yum install inotify-tools -y
2,命令集工具,即inotifywait和inotifywatch
inotifywait:在被监控的文件或目录上等待特定文件系统事件 (open,close,delete等)发生,执行后处于阻塞状态,适合在shell脚本中使用
inotifywatch:收集被监控的文件系统使用度统计数据,指文件系统事件发生的次数统计
3,简单测试
inotifywait -mqr --excludei=a.txt --timefmt '%d/%m/%y%H:%M' --format '%T %w%f' -e create,close_write /backup3
附赠参数说明
inotifywait 参数说明
参数名称 | 参数说明 |
---|---|
-m,–monitor | 始终保持事件监听状态 |
-r,–recursive | 递归查询目录 |
-q,–quiet | 只打印监控事件的信息 |
–excludei | 排除文件或目录时,不区分大小写 |
-t,–timeout | 超时时间 |
–timefmt | 指定时间输出格式 |
–format | 指定时间输出格式 |
-e,–event | 后面指定删、增、改等事件 |
--format : 自定义inotifywait的输出格式,如--format '%T %w%f',格式解释如下
inotifywait events事件说明
事件名称 | 事件说明 |
---|---|
access | 读取文件或目录内容 |
modify | 修改文件或目录内容 |
attrib | 文件或目录的属性改变 |
close_write | 修改真实文件内容 |
close_nowrite | |
close | |
open | 文件或目录被打开 |
moved_to | 文件或目录移动到 |
moved_from | 文件或目录从移动 |
move | 移动文件或目录移动到监视目录 |
create | 在监视目录下创建文件或目录 |
delete | 删除监视目录下的文件或目录 |
delete_self | |
unmount | 卸载文件系统 |
优化 Inotify
#默认情况下不需要优化
在/proc/sys/fs/inotify目录下有三个文件,对inotify机制有一定的限制
1
2
3
4
5
|
[root@web ~]# ll /proc/sys/fs/inotify/
总用量0
-rw-r--r--1 root root 09月923:36 max_queued_events
-rw-r--r--1 root root 09月923:36 max_user_instances
-rw-r--r--1 root root 09月923:36 max_user_watches
|
#文件说明
1
2
|
[root@web ~]# echo 50000000>/proc/sys/fs/inotify/max_user_watches -- 把他加入/etc/rc.local就可以实现每次重启都生效
[root@web ~]# echo 50000000>/proc/sys/fs/inotify/max_queued_events
|
附赠一个监控脚本,rsync+inotify都应该装在逻辑服上,推送到备份服务器上
#!/bin/bash
# The author is joker, which is used to listen to directories and synchronize files.
# 判软件安装
inotify_order=`which inotifywait 1>/dev/null 2>&1`
inotify_state=`echo $?`
rsync_order=`which rsync 1>/dev/null 2>&1`
rsync_state=`echo $?`
if [ $inotify_state -eq 1 -a $rsync_state -eq 1 ];then
yum install inotify-tools rsync -y
sleep1
sh $0
else
# 脚本是时刻监控path目录发生的变化,应该存放于rsync的客户端,即逻辑服务器
# 被监控目录
localpath=/joker/
# rsync验证用户,密码
auth_user=rsync_backup
cat >/etc/rsync.passwd<<EOF
woshimima
EOF
passwd_file=/etc/rsync.passwd
chmod 600 /etc/rsync.passwd
# 备份服务器IP
ip="60.205.188.107"
# 备份服务器备份目录,匹配rsync模块
backupdir=gameserver1
# m保持监听状态,r递归查询目录,q打印监控事件信息,w显示被监控目录名字,f发生变化的文件名
inotifywait -mrq --format '%w%f' -e close_write,delete $localpath \
|while read file
do
if [ -f $file ];then
rsync -az $file --delete $auth_user@$ip::$backupdir --password-file=$passwd_file
else
cd $localpath
rsync -az ./ --delete $auth_user@$ip::$backupdir --password-file=$passwd_file
fi
done
fi
sersync文字教程
包在自己的云服务器目录上/joker,读者如果没有该目录,请从网上查找
1,想同步什么文件 6-11
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>
2,inotify监控属性 12-21
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>
3,sersync配置 23-44
其中
24-28 目录
24 <localpath watch="/opt/tongbu"> # 本地推送目录
25 <remote ip="127.0.0.1" name="tongbu1"/> #rsync服务器ip和模块
26 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28 </localpath>
29-35 rsync命令
29 <rsync>
30 <commonParams params="-artuz"/> # 默认avz
31 <auth start="true" users="root" passwordfile="/etc/rsync.pas"/> # 开启验证,用户,密码
32 <userDefinedPort start="false" port="874"/<!port=874 --> # 端口
33 <timeout start="true" time="100"/><!-- timeout=100 --> # 客户端超时
34 <ssh start="false"/>
35 </rsync>
4,日志 36
36 <failLogpath="/tmp/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60mins execute once-->
启动执行
/mnt/sersync/bin/sersync -d -r -o /mnt/sersync/conf/confxml.xml
附赠启动参数
[root@jokerpro bin]# /service/script/sersync/bin/sersync -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
注意与事项
逻辑服务器安装inotify+sersync+rsync命令 备份服务器安装rsync的daemon模式 逻辑服务器数据产生目录发生数据变化,就会推送到备份服务器上 一般错误还是发生在rsync上,请看上一篇文章,搞懂rsync,虚拟账号,rsync账号,目录权限
附赠sersync脚本,执行于逻辑服上
#!/bin/bash
# The author is joker, applied to file synchronization.
# rsync 验证用户,密码
author=rsync_backup
password=woshimima
# 判软件安装
inotify_order=`which inotifywait 1>/dev/null 2>&1`
inotify_state=`echo $?`
rsync_order=`which rsync 1>/dev/null 2>&1`
rsync_state=`echo $?`
if [ $inotify_state -eq 1 -a $rsync_state -eq 1 ];then
echo -e "\033[31m 红色字,正在安装inotify,rsync \033[0m"
yum install inotify-tools rsync -y
sleep1
sh $0
else
# 只需要密码
cat>/etc/rsync.passwd<<EOF
$password
EOF
chmod 600 /etc/rsync.passwd
# 查找xml文件位置
sersync_path=`pwd`
confxml_path=`cd ..&&pwd`
# -d 守护进程模式,-r如果是第一次监控,将全量推送一次,后续增量,-o,指定配置文件
$sersync_path/sersync -d -r -o $confxml_path/conf/confxml.xml
sersync_process=`ps -ef|grep sersync|grep -v grep|wc -l`
if [ $sersync_process -ge 1 ];then
echo -e "\033[32m 绿色字,sersync 启动成功 \033[0m"
else
echo -e "\033[31m 红色字,启动失败,检查inotify,rsync是否安装与正常启动 \033[0m"
fi
fi
SERSYNC服务的更多相关文章
- sersync服务搭建
前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...
- Sersync 上配置 Sersync 服务
上面的工作做好之后呢,下面就开始正式配置我们的 Sersync 了! 我们在 Sersync 安装过程中所用到包均是从谷歌 Sersync 项目组取得的,地址: https://code.google ...
- RedHat Linux下利用sersync进行实时同步数据
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linux5588.blog.51cto.com/65280/772054 拓扑图 ...
- linux服务之rsync
http://www.cnblogs.com/itech/archive/2010/06/13/1757952.html rsync与mfs好像有点类似,都是传输块的chunk,chunk的 1)软件 ...
- sersync 实时同步文件
sersync 主要用于服务器同步,web镜像等功能.sersync是使用c++编写,在结合rsync同步的时候,节省了运行时耗和网络资源.因此更快.sersync配置起来很简单.另外本项目相比较其他 ...
- centos6.6配置rsync+sersync实现实时同步分布式多客户端分发同步
1.sersync项目: sersync项目利用inotify与rsync技术实现对服务器数据实时同步到解决方案,其中inotify用于监控sersync所在服务器上文件系统的事件变化,rsync是目 ...
- [sersync+rsync] centos6.5 远程文件同步部署记录
针对本地文件的修改,自动同步到远程文件夹,远程备份很方面.研究了下大家的主流同步方案一般是 rsync+inotify和rsync+sersync, 我这里使用sersync的方案,当然大部分都是参照 ...
- sersync自动化同步部署
目录 0. 前提: 1. 部署rsync server服务 1.1 配置rsync配置文件 1.2 rsync配置文件说明: 1.3 创建密码文件修改权限600 1.4 创建提示文件(可有可无) 1. ...
- Rsync + sersync 实时同步备份
一 Rsync + Sersync 实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 ...
- CentOS 7 Sersync+Rsync 实现数据文件实时同步
rsync+inotify-tools与rsync+sersync架构的区别? 1.rsync+inotify-tools inotify只能记录下被监听的目录发生了变化(增,删,改)并没有把具体是哪 ...
随机推荐
- Git基础使用指南-命令详解
Software is like sex: it's better when it's free. -- Linus Torvalds 前情须知 -O- 工作流程 首先要明确的是Git的工作流程,你使 ...
- Kimi:文本解析利器,你相信光么?
缘起 第一次接触 kimi 是在微信群,开始以为是推广薅羊毛产品,后来在其他渠道也了解到 kimi,据说是"国产之光".我知道很多同学苦不能使用魔法久矣,索性就先踩踩这个" ...
- UE4/5 应用角色根运动的问题
总的来说UE还是有点绕,网上提到的也不是很清晰,记录下. 具体可以下载UE官方示例ContentExample并进入Animation Level进行查看. 在Level中能看到根运动的必要步骤: 1 ...
- Nokia 5GC 产品概览
目录 文章目录 目录 Nokia SR OS Nokia NSP NFM-P Nokia 7750 SR-MG 5G User Plane Forwarding Mobile Gateway Non- ...
- IceRPC之调用管道Invocation pipeline与传出请求Outgoing request->快乐的RPC
作者引言 .Net 8.0 下的新RPC 很高兴啊,我们来到了IceRPC之调用管道 Invocation pipeline与传出请求 Outgoing request->快乐的RPC, 基础引 ...
- python ddddocr图片验证码详解
安装 下载地址:https://pypi.tuna.tsinghua.edu.cn/simple/ddddocr/ 安装命令: pip install D:\ChromeCoreDownloads\d ...
- Istio(四):创建部署Gateway并使用网关暴露服务
目录 一.模块概览 二.系统环境 三.Gateway网关 3.1 使用 Gateway 四.实战:使用Gateway发布服务 4.1 创建部署并使用网关暴露 4.2 清理 一.模块概览 在Kubern ...
- MySQL所有的主从同步架构搭建方式
目录 一.前言 二.关于MySQL主从同步 三.部署规划 3.1 服务器规划 3.2 数据库目录规划 四.准备工具 五.四台机器上使用通用二进制包安装MySQL(以node7为例) 5.1 上传MyS ...
- Java的深浅拷贝认识
目录 浅拷贝 深拷贝 分辨代码里的深浅拷贝 在Java中,深拷贝和浅拷贝是对象复制的两种方式,主要区别在于对对象内部的引用类型的处理上. 浅拷贝 定义: 浅拷贝是指创建一个新的对象,但这个新对象的属性 ...
- nohup Command [ Arg … ] [ & ]
nohup 英文全称:no hang up 不挂断的意思.退出终端不挂断程序的运行.在默认的情况下,会输出一个名叫 nohup.out 的文件到当前目录下.nohup Command [ Arg - ...