通过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.gawzjz.com/qtweb2/news9/12809.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联