欢迎光临
我们一直在努力

linux监控文件或文件夹变化的shell脚本

首先安装inotify-tools

apt-get install inotify-tools

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

#!/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

inotifywait选项:

-h|–help
显示帮助信息
@
排除不需要监视的文件,可以指定相对路径或绝对路径
–fromfile
从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头
-m|–monitor
收到单个事件不退出,一直监视,默认:收到单个事件后立即退出
-d|–daemon
跟–monitor一样,除了是在后台运行,需要指定–outfile把事情输出到一个文件。也意味着使用了–syslog
-o|–outfile
输出事件到而不是stdout
-s|–syslog
输出错误信息到syslog而不是stderr
-r|–recursive
监控目录下所有子目录,创建新的子目录也会被监控
-q|–quiet
不输出详细信息
–exclude 不处理正则表达式匹配到的文件的任何事件,大小写敏感
–excludei 不处理正则表达式匹配到的文件的任何事件,大小写敏感
-t , –timeout
设置超时时间,如果为0,则一直等待事件
-e , –event
指定监听的事件,可以多次指定,如果省略,则监听所有事件
-c, –csv
输出为csv格式
–timefmt
指定时间格式,用于–format选项中的%T格式
–format 指定输出格式
%w 表示发生事件的目录
%f 表示发生事件的文件
%e 表示发生的事件
%Xe 事件以“X”分隔
%T 使用由–timefmt定义的时间格式

 

未经允许不得转载:ViewSea » linux监控文件或文件夹变化的shell脚本

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址