通过Inotify监控文件

Inotify是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。通过inotify实现数据的时时同步,所需要的应用软件inotify-tools。

创新互联长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为新市企业提供专业的成都网站设计、网站建设新市网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

如果在shell环境下,可以安装 yum install inotify-tools,安装以后有两个命令可以用inotifywait 和 inotifywatch,inotifywait 是需要使用的命令。

监听/usr/local/src 目录:

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M'
--format '%T %w %f %e' -e modify,delete,create,attrib  
/usr/local/src

参数:

  • -m 持续监听
  • -r 使用递归形式监视目录
  • -q 减少冗余信息,只打印出需要的信息
  • -e 指定要监视的事件,多个时间使用逗号隔开
  • –timefmt 时间格式
  • –format 监听到的文件变化的信息
  • –timefmt 说明:
  • ymd分别表示年月日,H表示小时,M表示分钟

–format说明:

如何使用Shell进行文件监控?如何使用Shell进行文件监控?

执行上面的命令之后,在监听的目录下创建一个1.txt文件,得到如下结果:

22/03/18 17:22 /usr/local/src/ 1.txt CREATE
22/03/18 17:22 /usr/local/src/ 1.txt ATTRIB

这个脚本的功能是循环监听文件或目录的增删改事件,当事件发生执行设置的脚本文件。

#!/bin/sh
# 监视的文件或目录
filename=$1
# 监视发现有增、删、改时执行的脚本
script=$2

inotifywait -mrq --format '%e' --event create,delete,modify  $filename | while read event
do
    case $event in MODIFY|CREATE|DELETE) bash $script ;;
    esac
done

shell脚本后台执行

nohup

使用nohup,其中test.sh为所执行的脚本,out.txt为输出信息的地方。

nohup sh test.sh>out.txt &

文章标题:通过Inotify监控文件
浏览地址:http://www.hxwzsj.com/article/ccodeoc.html
Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 网站建设推广 四川成都网站建设 手机网站设计 成都网站建设 app网站建设 成都做网站建设公司 成都网站建设公司 商城网站建设 网站建设 成都网站设计 手机网站制作设计 网站制作 成都网站建设公司 成都网站建设 H5网站制作 网站制作公司 成都网站设计 成都营销网站制作 营销型网站建设 移动网站建设 成都商城网站建设 成都网站制作