2011-11-17 96 views
2

我想监视我的服务器上的目录以添加(或文件更新),并且在添加某些内容时运行php脚本。我看到有watch,但我不确定如何使用它。监控目录,然后运行PHP脚本

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

我可以运行此配置文件(什么目录等),以便于安装到最终用户?

+1

相关:[文件夹监控和事件触发根据文件夹状态在PHP](http://stackoverflow.com/questions/8135842/folder-monitoring-and-event-triggering-according-to-folder-status-in -php) – hakre

回答

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,但这需要一个系统守护进程。

0

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

我会采取的一种方法是有一个PHP脚本做目录列表,存储在数据库像SQLite等,然后比较差异,因为它是一个PHP脚本,它可以将信息传递给其他PHP脚本或将脚本的其余部分合并。你可以让cron运行你的php脚本。