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. JavaScript数组Array方法介绍,使用示例及ES6拓展

    数组定义 有次序和编号的一组值 类似数组对象 函数agruments对象,字符串,DOM元素集 实例属性 Array.prototype.length length可以赋值,用以改变数组长度 arr. ...

  2. 【2023知乎爬虫】我用Python爬虫爬了2386条知乎评论!

    目录 一.爬取目标 二.展示爬取结果 三.爬虫代码讲解 3.1 分析知乎页面 3.2 爬虫代码 四.同步视频 五.完整源码 您好,我是 @马哥python说,一枚10年程序猿. 一.爬取目标 前些天我 ...

  3. 解密Prompt系列28. LLM Agent之金融领域摸索:FinMem & FinAgent

    本章介绍金融领域大模型智能体,并梳理金融LLM的相关资源.金融领域的大模型智能体当前集中在个股交易决策这个相对简单的场景,不需要考虑多资产组合的复杂场景.交易决策被简化成市场上各个信息,包括技术面,消 ...

  4. 使用 Docker 部署 TaleBook 私人书籍管理系统

    1)项目介绍 GitHub:https://github.com/talebook/talebook Talebook 是一个简洁但强大的私人书籍管理系统.它基于 Calibre 项目构建,具备书籍管 ...

  5. 使用自定义lua解析管理器调用lua脚本中的table

    [5] 使用自定义lua解析管理器调用table 访问数组类型的table CallLuaEntrance测试脚本中内容: //------------------------------------ ...

  6. uniapp去除button的边框

    button { border: none !important; } button::after { border: none !important; }

  7. 同时添加多个的远程桌面工具,Windows远程桌面设置多用户同时登录

    Windows Server 版本上的 Windows 远程桌面服务 (RDS) 允许多个用户同时登录. 但是,在标准的Windows桌面版本(例如Windows 10)上,默认情况下,远程桌面是为单 ...

  8. C语言:实现数组的删除和增加

    /*      删除方法:     如:12  32  56  84  95     用覆盖的方法     若删除第三个,则第四个要覆盖第三个,第五个要覆盖第四个     覆盖完:12  32  84 ...

  9. 读写可编程 SIM/USIM 卡

    目录 文章目录 目录 SIM 卡 USIM 卡 USIM 卡的关键参数 pySim 读写软件与 ADM key SIM 卡 SIM 卡,用户身份模块(Subscriber Identity Modul ...

  10. linux 文件扩展权限ACL(访问控制列表)

    目录 一.关于文件扩展权限ACL 二.给文件加扩展权限 三.给目录加扩展权限 四.给目录下所有文件都加扩展权限 五.去掉单个acl权限 六.去掉所有acl权限 一.关于文件扩展权限ACL 在linux ...