二、Linux实时同步软件之inotify

Linux实时同步软件之inotify

Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。inotify可以通过调用系统接口,实时监视目录和文件的变化,再结合rsync,实现实时目录同步功能。确定系统内核版本后,就可以安装inotify软件包了。

[[email protected] ~]# uname -r
2.6.32-696.el6.x86_64
[[email protected] ~]# ls /proc/sys/fs/inotify/
max_queued_events 
max_user_instances 
max_user_watches
#max_queued_events   表示监控时间队列           默认16384 可以使用cat命令查看
#max_user_instances   表示最多监控实例数        默认128
#max_user_watches     表示每个实例最多监控文件数    默认8192

想要修改系统默认值,需要修改/etc/sysctl.conf文件

[[email protected] nfs]# vim /etc/sysctl.conf
#末尾添加三行
fs.inotify.max_queued_events =32768
fs.inotify.max_user_instances =1024
fs.inotify.max_user_watches =90000000

  • inotify软件安装及使用

1)inotify软件包安装,可以官网下载(http://sourceforge.net/projects/inotify-tools/)
源码包编译安装,也可以yum安装,前提需要配置epel源。

[[email protected] ~]#wget -O /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-6.repo
[[email protected] ~]# yum install -y inotify-tools
[[email protected] ~]# rpm -qa inotify-tools
inotify-tools-3.14-1.el6.x86_64

2)inotify常用参数

inotify软件安装完成后有两个命令可使用,分别是/usr/bin/inotifywait
和/usr/bin/inotifywatch

inotifywait
<--- 实现对数据目录信息变化监控(重点了解的命令)

inotifywatch
<--- 监控数据信息变化,对变化的数据进行统计

通常我们使用inotifywait命令查看目录信息变化即可,inotifywatch统计功能较少使用

inotifywait命令常用参数主要有下面一些:


命令参数


参数说明


-m|--monitor


始终监听状态


-d|--daemon


后台监听,事件信息会被记录在指定文件中


-r|--recursive


递归监听目录数据变化


-q|--quiet


减少输出内容


--timefmt


设置日期格式
(%F=%Y-%m-%d年-月-日%T=%H:%M:%S 时:分:秒)


--format


设置输出信息的格式(%T 时间 %w监控目录%f变化文件 %e事件信息)


-e


指定检测的动作
( closewrite 修改create创建 delete删除 movedto移动

例:inotify
-mrq --timefmt "%F %T" --format "%T %w/%f %e" \

-e
creat,delete,movedto,closewrite /data

  • inotify+rsync实时同步

1)实现原理

inotify可以实现对特定的目录进行持续的数据监控,而rsync的--delete参数可以实现客户端和服务端指定的一个目录数据无差异同步功能,当inotify监控到目录数据变化时,可以通过脚本调用rsync服务,从而实现实时同步的功能。

2)rsync服务搭建

实现实时同步,首先保证服务端和客户端的rsync安装配置完成(上一篇介绍rsync服务部署),即客户端可以向备份服务器推送文件,测试如下:

[[email protected] ~]# rsync -az /etc/sysconfig
[email protected]::nfs --password-file=/etc/rsync.password
#客户端推送
[[email protected] ~]# ls /nfs
sysconfig
#服务端收到

3)编写脚本

inotify安装完成后,使用/usr/bin/inotifywait实时监控目录,当目录数据出现变化时,调用rsync服务,通过脚本实现:


#!/bin/bash
#inotify+rsync backup /data
/usr/bin/inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write
/data |\
while read line
do
rsync -az /data/ --delete
[email protected]::nfs --password-file=/etc/rsync.password
done

4)运行脚本,测试

[[email protected] data]# sh /root/inotify_rsync.sh &
[1] 3555
[[email protected] data]# touch {01..20}
[[email protected] data]# ls
01  02 
03  04  05 
06  07  08 
09  10  11 
12  13  14 
15  16  17 
18  19  20
#客户端创建测试文件
[[email protected] nfs]# ls /nfs
01  02 
03  04  05 
06  07  08 
09  10  11 
12  13  14 
15  16  17 
18  19  20
#服务端成功接收,实现了实时同步的功能

  • inotify软件不足

inotify监控是调用系统接口,但是进程毕竟有限,如果有大量的小文件传输时,会出现明显的延迟,实际生产中,使用较少。

原文地址:https://www.cnblogs.com/yaokaka/p/11620751.html

时间: 2024-07-28 15:28:20

二、Linux实时同步软件之inotify的相关文章

Sersync实时同步软件

本项目利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步.目前使用的比较多的同步程序版本是inotify-tools,另外一个是google开源项目Openduckbill(依赖于inotify-tools),这两个都是基于脚本语言编写的,其设计思路同样是采用inotify与rsync命令. 相比较上面两个项目,本项目优点是: 1.

linux 实时同步inotify

#实时同步inotify 1.inotify简介inotify是一种强大的,细腻度的,异步的文件系统事件监控机制,linux内核从2.6.13起,加入了inotify支持,通过INOTIFY可以监控文件系统中添加.删除.修改.移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tloos就是实施这样监控的软件. 2.inotify实施检查rsync daemon服务是否服务正常,可以推送数据实施同步ps -ef |grep rsync|grep

20170705L07-09-03老男孩linux运维实战培训-Sersync实时同步软件实战应用指南-2

接上一节继续说的sersync 这一节讲的是sersync的实际实验 主服务器sersync的安装,设置 然后是同步的演示 让人能更加了解同步自动化软件的原理 其中对实时同步进行了说明 当同步量很大的时候 可能客户机并不能实时进行更新

实时同步服务(inotify+sersync)

[inotify] 一.Inotify概念 1.概念一种强大的,细粒度的,异步文件系统事件监控机制,内核从2.6.23开始支持使用,具体监控事项(增删改)2.安装软件yum -y install inotify-tools (前提是部署好epel源)3.inotify软件应用软件前提linux内核从2.6.13起开始使用,加入inotify支持[[email protected] ~]#cd /proc/sys/fs/inotify/[[email protected] /proc/sys/fs

关于SyncNavigator数据库实时同步软件新手使用教程【推荐阅读】

购买事宜请联系QQ:1793040 WWW.syncnavigator.cn HKROnline SyncNavigator企业版 8.4.1 使用教程 首先,SyncNavigator现在没有试用版了,试用版在2018年起就停止运营了,需要正式激活之后,软件才能新建项目,功能才算正常. SyncNavigator的基本功能:自动同步数据/定时同步数据无论是实时同步/24小时不间断同步 SyncNavigator是一款高效的数据库同步工具,支持sqlserver数据库和mysql数据库,采用增量

20170710L07-09-03老男孩Linux运维实战培训-Sersync实时同步软件实战应用指南08

还是说的sersync的压力测试 for n in 'seq 100' ; do mkdir -p test/$n:done        #创建100目录 还是压力测试的实际测试.这次好像加入了一个脚本去记录同步的延时

linux主从实时同步

linux主从同步,目前广泛采用的方案是使用rsync+inotify的方式来实现文件的触发更新.原理是采用inotify来对文件进行监控,当监控到文件有文件发生改变的时候,就会调用rsync实现触发式实时同步.我采用的是金山的一个居于inotify+rsync进行二次开发实现文件同步的小工具sersync,能够很方便的实现文件触发式同步,所以本文采用的rsync+sersync. 下面的对于inotify的简介都引自 http://blog.chinaunix.net/uid-20639775

inotify +rsync 实时同步

1.1 inotify简介 inotify是一种强大的,细粒度的,异步的文件系统时间监控机制,Linux内核从2.6.13加入了inotify支持,通过inotify可以监控文件系统汇中添加,删除,修改,移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools正式实施这样的监控的软件,国人周洋在金山公司开发了类似的实时同步软件sersync. 1.1.1 安装inotify 在安装inotify-tools前请先确认你的Linux内核是否达

inotify和rsync实现数据实时同步

数据的实时同步 ?实现实时同步 ?要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 ?发现目录中数据产生变化,就利用rsync服务推送到备份服务器上 ?实现实时同步的方法 ?inotify+rsync 方式实现数据同步 ?sersync :金山公司周洋在 inotify 软件基础上进行开发的,功能更加强大 ?inotify: 异步的文件系统事件监控机制,利用事件驱动机制,而无须通过诸如cron等的轮询机制来获取事件,linux内核从2.6.13起支持 inotify,通过in