监控目录然后运行PHP脚本

发布于 2024-12-16 14:16:28 字数 226 浏览 2 评论 0原文

我想监视服务器上的目录是否有添加(或文件更新),并且当添加某些内容时,运行 php 脚本。

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

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

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

I want to monitor a directory on my server for additions (or file update), and when something is added, run a php script.

I saw that there is watch, but I'm not sure exactly how to use it.

I know watch -d ls -l will track changes in the file listing, but then how do I pipe the changed file to a php script? Also, how do I watch for a file that is not new, but updated?

Can I run this alongside a config file (what directories, etc) for easy setup to end users?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酷炫老祖宗 2024-12-23 14:16:28

您可以在 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,但这需要系统守护进程。

You can use inotifywait (from inotify-tools) in a bash script.

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

%w%f will give you the file path. If you also need the event add %e. For more format options and event names, see the manpage.

Another possibility would be incron, but that requires a system daemon.

蔚蓝源自深海 2024-12-23 14:16:28

每次我使用watch时,它似乎都会消耗当前的控制台/tty。可能不是导入 php 脚本的最佳工具。

我采取的一种方法是让 php 脚本执行目录列表,存储在 SQLite 等数据库中,然后比较差异,并且由于它是 php 脚本,因此它可以将信息传递给其他 php 脚本或具有脚本的其余部分已合并。您可以让 cron 运行您的 php 脚本。

Every time I have used watch, it seems to consume the current console/tty. Probably not the best tool for piping into a php script.

One approach I would take is to have a php script do the directory listing, store in a DB like SQLite, etc. then compare the differences, and since it is a php script, it can pass the info off to other php scripts or have the rest of the script incorporated. You can have cron run your php script.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文