监视文件夹树中的更改,并在创建文件时运行脚本-linux

监视文件夹树中的更改,并在创建文件时运行脚本-linux,linux,shell,Linux,Shell,我正在尝试创建一个后台运行的shell脚本,该脚本将在文件树中创建文件时注意到,检查文件名是否符合特定条件,通过电子邮件发送文件,然后移动它 应用程序-通过电子邮件发送FreePBX通话记录 文件存储在/var/spool/asterisk/monitor/yyy/mm/dd中/ 例如-/var/spool/asterisk/monitor/2014/07/10/conf-220-220 因此,在创建录音时,它会根据文件名检查录音对象,发送电子邮件,然后将其移出文件夹 我看到了关于inotify

我正在尝试创建一个后台运行的shell脚本,该脚本将在文件树中创建文件时注意到,检查文件名是否符合特定条件,通过电子邮件发送文件,然后移动它

应用程序-通过电子邮件发送FreePBX通话记录

文件存储在/var/spool/asterisk/monitor/yyy/mm/dd中/

例如-/var/spool/asterisk/monitor/2014/07/10/conf-220-220

因此,在创建录音时,它会根据文件名检查录音对象,发送电子邮件,然后将其移出文件夹

我看到了关于inotify工具的建议,但网站上的最后一条新闻是2010年的

我也看到了incron,但想要的东西有一个小的机会弄乱我的电话系统(我害怕安装程序)

因为这个版本还很早,所以它不包含标准的可移植构建机制(例如自动工具)。只有一个Makefile必须手动修改。在许多Linux系统上,您无需更改任何内容


inotify
已经存在了一段时间,它很稳定,是许多发行版主流的一部分

如何安装:

在Ubuntu上:

sudo apt get install inotify tools

在Centos/RHEL(来自EPEL回购):

yum--enablerepo-epel安装inotify工具

如何使用:

inotifywait -re create /tmp/test1/ && echo "Change detected"
创建文件后,
echo“检测到更改”
将被触发,这几乎可以是任何内容

您得到的输出:

Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
/tmp/test1/test2/test3/ CREATE file
Change detected

PS.
-r
用于递归
-e创建
以检测新文件。

谢谢,这是我的脚本:
/bin/sh
为true时;执行
inotifywait-重新关闭写入/var/spool/asterisk/monitor/
/usr/local/bin/send\u rec.sh
完成