很多时候,我们希望在变更某个文件后,系统可以自动触发操作,比如我们更新某个文件后,自动执行编译,本文将为大家介绍相应的方法。

1. 确认系统是否支持inotify

ls -l /proc/sys/fs/inotify

-rw-r--r-- 1 root root 0 3月  11 05:01 max_queued_events
-rw-r--r-- 1 root root 0 3月  11 05:01 max_user_instances
-rw-r--r-- 1 root root 0 3月  11 05:01 max_user_watches

PS: 若出现以上3个文件,则表示支持

2. 安装inotify-tools

yum -y install inotify-tools

3. 编写监听脚本

test.sh

#!/bin/bash

inotifywait -mrq --format '%w%f' -e modify /data | while read line
do
    do some thing
done

PS: 当/data目录发生更新后触发动作,可以通过man inotifywait 查看具体的参数说明

4. 后台执行

nohup test.sh > /dev/null &