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',格式解释如下

%w :显示被监控目录的名字
%f : 发生变化的文件名
%T: 使用--timefmt选项中自定义的时间格式

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
#文件说明
max_user_watches #设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)
max_user_instances #设置每个用户可以运行的inotifywait或inotifywatch命令的进程数
max_queued_events #设置inotify实例事件(event)队列可容纳的事件数量
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服务的更多相关文章

  1. sersync服务搭建

    前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...

  2. Sersync 上配置 Sersync 服务

    上面的工作做好之后呢,下面就开始正式配置我们的 Sersync 了! 我们在 Sersync 安装过程中所用到包均是从谷歌 Sersync 项目组取得的,地址: https://code.google ...

  3. RedHat Linux下利用sersync进行实时同步数据

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linux5588.blog.51cto.com/65280/772054 拓扑图 ...

  4. linux服务之rsync

    http://www.cnblogs.com/itech/archive/2010/06/13/1757952.html rsync与mfs好像有点类似,都是传输块的chunk,chunk的 1)软件 ...

  5. sersync 实时同步文件

    sersync 主要用于服务器同步,web镜像等功能.sersync是使用c++编写,在结合rsync同步的时候,节省了运行时耗和网络资源.因此更快.sersync配置起来很简单.另外本项目相比较其他 ...

  6. centos6.6配置rsync+sersync实现实时同步分布式多客户端分发同步

    1.sersync项目: sersync项目利用inotify与rsync技术实现对服务器数据实时同步到解决方案,其中inotify用于监控sersync所在服务器上文件系统的事件变化,rsync是目 ...

  7. [sersync+rsync] centos6.5 远程文件同步部署记录

    针对本地文件的修改,自动同步到远程文件夹,远程备份很方面.研究了下大家的主流同步方案一般是 rsync+inotify和rsync+sersync, 我这里使用sersync的方案,当然大部分都是参照 ...

  8. sersync自动化同步部署

    目录 0. 前提: 1. 部署rsync server服务 1.1 配置rsync配置文件 1.2 rsync配置文件说明: 1.3 创建密码文件修改权限600 1.4 创建提示文件(可有可无) 1. ...

  9. Rsync + sersync 实时同步备份

    一      Rsync + Sersync  实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 ...

  10. CentOS 7 Sersync+Rsync 实现数据文件实时同步

    rsync+inotify-tools与rsync+sersync架构的区别? 1.rsync+inotify-tools inotify只能记录下被监听的目录发生了变化(增,删,改)并没有把具体是哪 ...

随机推荐

  1. Git基础使用指南-命令详解

    Software is like sex: it's better when it's free. -- Linus Torvalds 前情须知 -O- 工作流程 首先要明确的是Git的工作流程,你使 ...

  2. Kimi:文本解析利器,你相信光么?

    缘起 第一次接触 kimi 是在微信群,开始以为是推广薅羊毛产品,后来在其他渠道也了解到 kimi,据说是"国产之光".我知道很多同学苦不能使用魔法久矣,索性就先踩踩这个" ...

  3. UE4/5 应用角色根运动的问题

    总的来说UE还是有点绕,网上提到的也不是很清晰,记录下. 具体可以下载UE官方示例ContentExample并进入Animation Level进行查看. 在Level中能看到根运动的必要步骤: 1 ...

  4. Nokia 5GC 产品概览

    目录 文章目录 目录 Nokia SR OS Nokia NSP NFM-P Nokia 7750 SR-MG 5G User Plane Forwarding Mobile Gateway Non- ...

  5. IceRPC之调用管道Invocation pipeline与传出请求Outgoing request->快乐的RPC

    作者引言 .Net 8.0 下的新RPC 很高兴啊,我们来到了IceRPC之调用管道 Invocation pipeline与传出请求 Outgoing request->快乐的RPC, 基础引 ...

  6. python ddddocr图片验证码详解

    安装 下载地址:https://pypi.tuna.tsinghua.edu.cn/simple/ddddocr/ 安装命令: pip install D:\ChromeCoreDownloads\d ...

  7. Istio(四):创建部署Gateway并使用网关暴露服务

    目录 一.模块概览 二.系统环境 三.Gateway网关 3.1 使用 Gateway 四.实战:使用Gateway发布服务 4.1 创建部署并使用网关暴露 4.2 清理 一.模块概览 在Kubern ...

  8. MySQL所有的主从同步架构搭建方式

    目录 一.前言 二.关于MySQL主从同步 三.部署规划 3.1 服务器规划 3.2 数据库目录规划 四.准备工具 五.四台机器上使用通用二进制包安装MySQL(以node7为例) 5.1 上传MyS ...

  9. Java的深浅拷贝认识

    目录 浅拷贝 深拷贝 分辨代码里的深浅拷贝 在Java中,深拷贝和浅拷贝是对象复制的两种方式,主要区别在于对对象内部的引用类型的处理上. 浅拷贝 定义: 浅拷贝是指创建一个新的对象,但这个新对象的属性 ...

  10. nohup Command [ Arg … ] [ & ]

    nohup 英文全称:no hang up 不挂断的意思.退出终端不挂断程序的运行.在默认的情况下,会输出一个名叫 nohup.out 的文件到当前目录下.nohup Command [ Arg - ...