我有一个Windows应用程序将创建一个.xml文件并将其上传到我的Linux服务器上的文件夹。我需要一种方法来监视这个新文件,它的文件名将是“004job.xml”,“012job.xml”等等。文件名每次都不同。检测到文件后,将使用新文件作为命令行变量运行脚本。像这样的“/home/project/scripts/renderjob.sh /home/project/jobs/012job.xml”。该脚本将根据.xml文件的内容执行一些操作,最后一个操作是删除.xml文件。
同样重要的是,一次只运行此脚本的一个实例。但那是一匹不同颜色的马。
感谢阅读。
答案 0 :(得分:0)
简言之:
检测到文件后,将运行一个脚本,并将新文件作为其命令行变量。
同样重要的是,一次只运行此脚本的一个实例。
以这种方式在脚本中使用flock
:https://unix.stackexchange.com/questions/274498/performing-atomic-write-operations-in-a-file-in-bash/274499#274499。在flock中插入监听文件:
(
flock -s 200
res=$(inotifywait $DIR)
# other actions
) 200>/var/lock/myscriptlock