Inotify简介

inotify介绍

  • inotify是一种强大的、异步的文件系统监控机制,linux内核从2.6.13起,加入了inotify的支持,通过inotify可以监控文件系统中添加、删除、修改、移动等各种事件
  • inotify实际是一种事件驱动机制,它为应用程序监控文件系统事件提供了实时相应事件的机制,而无需通过cron等轮询的机制来获取事件.cron不紧无法做到实时性,而且消耗大量系统资源

工具集介绍
inotifywait:

  • 在被监控的文件或目录上等待特定的事件(打开、关闭、删除等)发生,执行后处于阻塞状态,适合在shell脚本中使用
  • 监控目录变化 -->比较简洁的一句话描述这个工具的作用,哈哈

inotifywatch:

  • 收集被监视的文件系统使用度统计数据,指文件系统事件发生的次数同级

inotify优点:
  实时数据同步
inotify缺点:
  并发如果大于200个文件(10-100K),同步就会有延迟
sersync:

  • 通过配置文件定义,使用起来舒服
  • 真正的守护进程
  • 可以对失败文件定时重传
  • 第三方的HTTP接口
  • 默认多线程同步

inotifwait常用参数详解

    -r, --recursive      递归查询目录
-q, --quiet 紧打印监控事件的信息
-m, --monitor 始终保持事件监听状态
--exclude <pattern> 排除文件或目录时,不区分大小写
--timefmt 指定事件输出的格式
-e, --event 通过此参数指定需要监控的事件
Events:
access: 文件和目录被读取时
modify: 文件和目录被修改时
attrib: 文件或目录属性被修改时
close: 文件或目录关闭(无论读/写)时
open: 文件或目录被打开时
moved to: 文件或目录被移动至另外一个目录时
create: 文件或目录被创建在当前目录时
delete: 文件或目录被删除时
umount: 文件系统被修改时

Inotify+Rsync实时同步

环境介绍

192.168.0.91      NFS-Server共享存储                  客户端
192.168.0.94 备份服务器(rsync daemon服务器) 服务端
#客户端如果发生文件操作之后,立即出发rsync命令向服务端同步(推送)数据

Rsync daemon服务器(服务端)

配置rsync daemon省略,详情请看上一篇博客配置

NFS-Server(客户端)

安装inotify
tar -zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configre --prefix=/usr/local/inotify-tools-3.14
make && make install
ln -s /usr/local/inotify-tools-3.14 /usr/local/inotify
创建密码文件
vim /etc/web.password
123.com
编写实时同步脚本
vim /usr/local/inotify/inotify+rsync.sh
#!/bin/bash
inotify=/usr/local/inotify-tools/bin/inotifywait
$inotify -mrq --format '%w%f' -e create,close_write,delete /data |while read file
do
cd /root && rsync -az /data/ --delete apache@192.168.0.94::web --password-file=/etc/web.password
done
sh -x /usr/local/inotify-tools/inotify+rsync.sh &
测试
在/data/目录下创建、删除、修改文件时,热备服务器会不会跟随变化

Linux学习系列之Inotify+Rsync实现实时数据同步的更多相关文章

  1. Inotify+rsync实现实时数据同步

    使用rsync可以实现数据同步,但是即使使用crontab定时任务最小执行间隔为1分钟,在数据实时性要求比较高场合需使用inotify+rsync实现实时同步 下载inotify wget https ...

  2. centos7部署inotify与rsync实现实时数据同步

    实验环境:CentOS Linux release 7.6.1810 node1:192.168.216.130 客户端(向服务端发起数据同步) node2:192.168.216.132 服务端(接 ...

  3. Linux系统实时数据同步inotify+rsync

    一.inotify简介 inotify是Linux内核的一个功能,它能监控文件系统的变化,比如删除.读.写和卸载等操作.它监控到这些事件的发生后会默认往标准输出打印事件信息.要使用inotify,Li ...

  4. inotify+rsync实现实时同步

    第1章 数据实时同步介绍 1.1 什么是实时同步:如何实现实时同步 A. 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 B. 发现目录中数据产生变化,就利用rsync服务推送到 ...

  5. 【转】inotify+rsync实现实时同步

    [转]inotify+rsync实现实时同步 1.1 什么是实时同步:如何实现实时同步 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 发现目录中数据产生变化,就利用rsync服 ...

  6. 【linux运维】rsync+inotify与sersync+rsync实时数据同步笔记

    Rsync(remote sync)远程同步工具,通过rsync可以实现对远程服务器数据的增量备份通过,但rsync自身也有缺陷,同步数据时,rsync采用核心算法对远程服务器的目标文件进行对比,只进 ...

  7. rsync+inotify实时数据同步多目录实战

    rsync+inotify实时数据同步多目录实战       inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 root@58server1 1 ...

  8. rsync+inotify实时数据同步单目录实战

    rsync+inotify实时数据同步单目录实战   rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起 ...

  9. inotify+rsync实现实时同步(附解决crontab中无法执行python脚本的问题)

    1.准备环境 # 系统支持的话,下面的目录就会存在 ls /proc/sys/fs/inotify/ rpm -qa inotify-tools yum -y install inotify-tool ...

随机推荐

  1. InChatter系统之服务客户端的开发

    今天终于开始客户端的开发了,客户端完成以后,我们将可以进行简单的交流.开发完成的程序只是一个很简单的雏形,在本系统完成以后,以及完成的过程中,大家都可以下载源码,在此基础上融入自己的想法和尝试,可以按 ...

  2. QPushButton注册事件过滤器后按钮消失

    版权声明:本文为博主原创文章,转载需要注明出处. RT,代码如下: ui.btn_set->installEventFilter(this); bool MousrHoverTest::even ...

  3. .NET Core MVC Web最最最基础的框架搭建

    1. 使用VS创建.NET Core MVC Web项目 创建完成就是酱紫的了 2. 用NuGet把这些全部都安装了 Install-Package Microsoft.EntityFramework ...

  4. linux 10201 ASM RAC 安装+升级到10205

    准备环境的时 ,要4个对外IP,2个对内IP 不超过2T,,一般都用OCFS 高端存储适合用ASM linux10G安装的时候,安装的机器时间要小于等于(如果是等于要严格等于)第二个机器的时间(只有l ...

  5. Shell书籍推荐

    1.鸟哥私房菜 2.<Linux命令行与shell脚本编程大全>         第二本书买了,对于初学者来说一般.

  6. java_String类练习

    public class StringTest { //1.模拟trim方法,去除字符串两端的空格 public static void main(String[] args) { String st ...

  7. javaScript中计算字符串MD5

    进行HTTP网络通信的时候,调用API向服务器请求数据,有时为了防止API调用过程中被黑客恶意篡改,所请求参数需要进行MD5算法计算,得到摘要签名.服务端会根据请求参数,对签名进行验证,签名不合法的请 ...

  8. 51nod 1013 3的幂的和 - 快速幂&除法取模

    题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 Konwledge Point: 快速幂:https:/ ...

  9. Linux 网卡配置

    网卡配置(环境CentOS 6.7) 图形界面修改: # 在命令行直接输入setup进入配置 1.[root@mingyaun ~]# setup 2.NetWork configuration 3. ...

  10. Vue如何点亮多个tab选项简易方法

    我们平常遇到点击选择会遇到单选或多选,当你设计图是自定义的时候,第一反应就是引入UI插件吧.可是如果项目只用到插件的这一点点功能,我们引入了一个插件这就不太友好了.此时我们自己写这个小功能是很简单的, ...