gpt4 book ai didi

linux - inotifywait 在脚本运行时错过事件

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:13 26 4
gpt4 key购买 nike

我正在运行一个 inotify 等待脚本,每当文件被修改、创建或删除时,该脚本都会触发 bash 脚本调用一个函数来同步我的文件数据库。

#!/bin/sh

while inotifywait -r -e modify -e create -e delete /var/my/path/Documents; do
cd /var/scripts/
./sync.sh
done

这实际上工作得很好,只是在我的同步脚本运行 watch 的 10 秒内没有拾取任何其他更改。在某些情况下,同步已经查看了目录,并且发生了 inotifywait 未检测到的其他更改,因为它尚未重新建立监视。

有没有办法让 inofitywait 触发脚本并仍然保持监视?

最佳答案

使用-m选项使其连续运行,而不是在每个事件后退出。

inotifywait -q -m -r -e modify -e create -e delete /var/my/path/Documents | \
while read event; do
cd /var/scripts
./sync.sh
done

这实际上会产生相反的问题:如果同步脚本运行时发生多次更改,它将再次运行多次。您可能需要在 sync.sh 脚本中添加一些内容,以防止它在最近运行过的情况下再次运行。

关于linux - inotifywait 在脚本运行时错过事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27727375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com