简介
Linux系统使用inotify监听文件的变化(创建、删除、修改等),并触发指令。
例如:当某个文件被修改后,自动重启电脑。
安装
1
| yum install -y inotify-tools
|
使用
实现效果:当/root/video*.jar
文件修改后,自动执行脚本/root/deplay.sh
- 创建监听脚本
1 2 3 4 5 6 7
| echo 'inotifywait -m -e CLOSE_WRITE /root/video*.jar | while read events; do echo $events; sh /root/deplay.sh echo "reload video" done' > /root/inotify-reboot.sh
|
- 运行监听脚本
参数描述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| inotifywait: -m :实时监控。 -d:后台运行。 -r:递归,对子目录监控。 -e:监控事件。以下 access:检测文件访问事件。 close_write:写入关闭事件。 modify:文件发生变化。 attrib:文件属性变化事件。 delete:文件被删除。 --timefmt :当在--format选项中使用%T时,--timefrt选项则可以用来指定自定义的符合strftime规范的时间格式,此时间格式可用的格式符可以通过strftime的手册页获取;--timefrt后常用的参数是'%d/%m/%y %H:%M'; --format :自定义inotifywait的输出格式,如--format '%T %w %f';常用的格式符如下: %w:显示被监控文件的文件名; %f:如果发生某事件的对象是目录,则显示被监控目录的名字;默认显示为空串; %T:使用--timefmt选项中自定义的时间格式. eg. inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write /data #输出时间 eg. innotifywait -mrq --format '%w%f' -e create,close_write,delete /data #简化输出 -m :永远监控,实时监控。 -d:后台运行。 -q:仅打印监控事件的信息。 -r:递归,对子目录监控。 -e:监控事件。以下 access:检测文件访问事件。 close_write:写入关闭事件。 modify:文件发生变化。 attrib:文件属性变化事件。 delete:文件被删除。 --timefmt :当在--format选项中使用%T时,--timefrt选项则可以用来指定自定义的符合strftime规范的时间格式,此时间格式可用的格式符可以通过strftime的手册页获取;--timefrt后常用的参数是 '%d/%m/%y %H:%M'; --format :自定义inotifywait的输出格式,如--format '%T %w %f';常用的格式符如下: %w:显示被监控文件的文件名. %f:如果发生某事件的对象是目录,则显示被监控目录的名字;默认显示为空串; %T:使用--timefmt选项中自定义的时间格式. eg. inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write /data #输出时间. eg. innotifywait -mrq --format '%w%f' -e create,close_write,delete /data #
|