inotifywait排除目录和文件方法

案例在使用inotifywait触发同步svn源码的时候,需要过滤每个目录的.svn,这时候就需要写个正则了,不然会频繁触发同步软件,假设/tmp/src/www/2016/以及/tmp/src/www/2015/cache/目录下的所有文件不用同步,所以不需要监控,/tmp/src/下的其他文件和目录都同步。(其实对于打开的临时文件,可以不监听modify时间而改成监听close_write

inotifywait排除监控目录有--exclude <pattern>--fromfile <file>两种格式,并且可以同时使用,但主要前者可以用正则,而后者只能是具体的目录或文件。

# vi /etc/inotify_exclude.lst:
/tmp/src/pdf
@/tmp/src/2014

使用fromfile格式只能用绝对路径,不能使用诸如*正则表达式去匹配,@表示排除。

所以每个目录都有相同的东西要过滤排除的时候,并且格式比较复杂,必须使用正则,那只能在inotifywait中加入选项,如--exclude '(.*/*\.log|.*/*\.swp|.svn)$|^/tmp/src/www/(2016|0808.*/cache.*)',表示排除/tmp/src/www/以下的2016目录,和所有0808*目录下的带cache的文件或目录,以及/tmp/src目录下所有的以.log或.swp结尾的文件。

 

此条目发表在软件分类目录,贴了标签。将固定链接加入收藏夹。

发表回复