Linux基础——inotify事件监控

本文介绍了inotify作为Linux下的一种文件系统事件监控机制,能实时并异步地监控文件系统的修改、添加、删除等操作。同时,结合rsync工具,可以实现文件的秒级同步,尤其适用于企业数据备份场景。在监控过程中,可以通过inotifywait设置参数来关注特定事件,如创建、删除、修改等。文章还提供了错误分析和解决方案,确保监控和同步的稳定性。
摘要由CSDN通过智能技术生成

概念

inotify是一种强大的,细粒度,异步的文件系统时间监视机制。可以监控文件系统中添加,删除,修改,移动等各个时间。

实时

并发

每秒200文件转发,数据基本无延迟(小于一秒)

inotify

优点:监控文件系统事件变化,通过同步工具实现实时数据同步

缺点:并发大于200个文件会有延迟

seryysync

通过rsync + inotifyinotify实时监控事件(增删改查),一旦目录出现了变化,它就会推送调用rsync,让他去推送目录中的所有内容,实现秒级别的同步,最大支持200个文件的变化。

企业备份

1.静态数据

2.动态数据

3.其他数据

yum类型

  1. 本地光盘源
  2. 云源(包在互联网)
  3. 自定义源(内网)
  4. FTP源(一个中央服务器做源,其余服务器连接使用)

部署inotify事件监视

环境

服务端需求:rsyncnfs

客户机操作

安装:wgetinotifywaitinotifywatch

Inotifywait:在被监控的文件或目录上等待特定文件系统事件(openclosedelete等)发生,执行后处于阻塞状态,适合shell脚本使用

Inotifywatch:收集被监视的文件系统使用度统计数据,指文件系统事件发生的次数统计。

inotifywait参数

含义说明

-r  --recursive

递归查询目录

-q  --quiet

打印很少的信息,仅仅打印监控事件的信息

-m  --monitor

始终保持事件监听状态

--exclude

排除文件或目录时,不区分大小写

--timefmt

指定时间输出的格式

--format

打印使用指定的输出类似格式字符串

-e  --event

通过此参数可以指定需要监控的时间,用法见下表

Events

含义

access

文件或目录被读取

modify

文件或目录内容被修改

attrib

文件或目录属性被修改

close

文件或目录封闭,无论读/写模式

open

文件或目录被打开

moved_to

文件或目录被移动至另外一个目录

move

文件或目录被移动到另一个目录或从另一个目录移至当前目录

create

文件或目录被创建在当前目录

delete

文件或目录被删除

umount

文件系统被卸载

close_write

监控写关闭

环境

搭建

部署实验所需环境(客户机)

[root@centos ~]# yum -y install wget

//安装wget工具,用于访问云yum

[root@centos yum.repos.d]# wget http://files.tttidc.com/centos6/epel-6.repo

//通过wget直接连接网站,下载云源文件

Ps:做到这一步需要本机可以连接外网,也就是可以使用Ping命令pingwww.baidu.com。否则将会出现云yum来路径错误,导致后续安装安装包失败。

[root@centos yum.repos.d]# yum -y install inotify-tools

可以查到命令,说明安装成功

监控创建

[root@centos backup]# inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w %f' -e create /backup

-mrq:必选项(m:始终保持事件监听状态;r:递归查询目录;q:进打印监

控事件信息)

--timefmt:指定输出的事件格式:%y %m %d %H %M分别对应年月日时分

--format:打印指定的输出类似格式字符串,%T %w %f分别对应时间,路径,文件名。也就是当监控对像发生变化时,先输出时间,再输出路径,最后输出文件名。

-e create:对创建事件进行监听

当只指定了创建事件时,其余事件变化是不进行显示的,也就是只针对指定事件进行监控。

监控多个事件

[root@centos backup]# inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w %f' -e create,delete,modify,close_write /backup

//监控创建,删除,读写

编写脚本

1inotify实时监控脚本

分析:

效果

(上面两个为一个客户机上开启两个shell窗口,下面的是服务器)

脚本的优化

代码:

效果:

开机启动

拓展

错误

分析

出现此类错误,一般是服务器上的模块的存储文件属主权限有问题。将/backup属主权限改成rsync。如果没有rsync,请仔细检查rsync配置步骤。

先检查脚本命令是否出现语法错误;然后检查rsync能否正常使用,并测试rsyncrsync若无问题,检查inotify是否可以正常使用。注意,inotify是在客户机上安装的,而非服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值