linux – 如何在目录内容变化时自动调用bash脚本

linux – 如何在目录内容变化时自动调用bash脚本,第1张

概述我的目标是在任何新文件添加到特定目录或该特定目录的任何子目录时自动运行bash脚本. 细节场景: 我正在创建一个从教师向学生提交文件的自动化流程,反之亦然.发件人将上传文件,它将以格式ex中存储在LAMP服务器的Uploads目录中. “name_course-name_filename.pdf”.我想要一些方法,以便当任何文件存储在Uploads文件夹中时,同时调用脚本并将该文件发送到recei 我的目标是在任何新文件添加到特定目录或该特定目录的任何子目录时自动运行bash脚本.

细节场景:

我正在创建一个从教师向学生提交文件的自动化流程,反之亦然.发件人将上传文件,它将以格式ex中存储在LAMP服务器的Uploads目录中. “name_course-name_filename.pdf”.我想要一些方法,以便当任何文件存储在Uploads文件夹中时,同时调用脚本并将该文件发送到receive列表.
从数据库中我可以找到该特定课程和学生的接收者列表.

我唯一关心的问题是,如果目录内容发生变化,如何自动调用脚本并使其在单个文件上工作. Cron将间隔但不是实时工作.

解决方法 Linux为此提供了一个很好的机制,称为 inotify.inotify主要作为C API提供.但是也开发了shell实用程序.你应该使用inotifytools中的 inotifywait(debian中的pkg名称).这是一个基本的例子:

#!/bin/bashdirectory="/tmp"   # or whatever you are interested ininotifywait -m -e create "$directory" |while read folder eventList eventfiledo    echo "the following events happened in folder $folder:"    echo "$eventList $eventfile"done

更新:

如果问题变得复杂,例如你必须监视递归的动态目录结构,你应该看看incron它是一个像守护进程一样的cron,它在某些事件上执行脚本.但事件是文件系统事件而不是计时器事件.

总结

以上是内存溢出为你收集整理的linux – 如何在目录内容变化时自动调用bash脚本全部内容,希望文章能够帮你解决linux – 如何在目录内容变化时自动调用bash脚本所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1026602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存