监视目录,然后运行PHP脚本

时间:2011-11-17 18:36:14

标签: php linux unix watch

我想监视服务器上的目录以进行添加(或文件更新),并在添加内容时运行php脚本。

我看到有watch,但我不确定如何使用它。

我知道watch -d ls -l会跟踪文件列表中的更改,但是如何将更改的文件传输到php脚本?另外,如何查看不是新文件但已更新的文件?

我可以将其与配置文件(哪些目录等)一起运行,以便于最终用户进行设置?

2 个答案:

答案 0 :(得分:2)

您可以在bash脚本中使用inotifywait(来自inotify-tools)。

while read file; do
    php some_script.php "$file"
done < inotifywait -e create,delete,move,modify -m . --format "%w%f" $dir

%w%f将为您提供文件路径。如果您还需要添加%e的活动。有关更多格式选项和事件名称,请参见联机帮助页。

另一种可能性是incron,但这需要一个系统守护进程。

答案 1 :(得分:0)

每次我使用手表时,它似乎消耗了当前的控制台/ tty。可能不是管道进入php脚本的最佳工具。

我要采取的一种方法是让php脚本执行目录列表,存储在像SQLite这样的数据库中,然后比较差异,因为它是一个php脚本,它可以将信息传递给其他php脚本或包含脚本的其余部分。你可以让cron运行你的php脚本。