问题标签 [inotifywait]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1304 浏览

python - Python、子进程、管道和选择

我有一个 python 程序,我在其中不断读取通过 subprocess.Popen 启动并通过 subprocess.PIPE 连接的其他程序的输出

我面临的问题是它有时会丢失已启动程序的大部分输出。

例如,通过管道监视 inotify 事件以inotifywait丢失许多事件。

这是相关的功能:

执行命令inotifywait -q -r -m --format %e:::::%w%f /opt/fileserver/ > /tmp/log1并移动一些文件(以生成 inotify 事件)给出一个 >8000 行文件。另一方面,使用我./pscript.py > /tmp/log2给出的文件大约有 5000 行。

0 投票
1 回答
634 浏览

bash - 使用 inotifywait 和 ssh 进行目录镜像的脚本

我有一个脚本尝试将特定目录从本地服务器镜像到远程服务器。它看起来像这样:

在多次创建文件的情况下,例如触摸命令: touch 1 2 3 3 个文件传输良好。

但是如果我一次删除几个文件: rm -f 1 2 3 只删除第一个文件。

如果我仅将 ssh 命令替换为echo $FILECHANGE,则 3 个文件会很好地显示在控制台中。所以似乎问题来自 ssh 命令,但我无法解释原因并解决它。

任何人的想法?

0 投票
1 回答
894 浏览

bash - 使用 inotifywait 在 BASH 中触发事件

我正在监视一个日志文件(它是一个 PBX 队列文件,它是在来电时写入的,它是呼叫发生情况、呼叫者是否挂断等的结果)

这是我所拥有的:

现在,如果我运行脚本,它会成功设置手表并检测到更改/关闭(我已经尝试过 MODIFY 和 CLOSE_WRITE,两者都有效)

但是该事件从未被触发(我已经在 inotify 脚本之外测试了 PHP 脚本,它们执行得非常出色)

如果我手动运行正在监视的文件的尾部,它会成功并找到以下短语:

我在这里缺少什么?

0 投票
3 回答
1870 浏览

linux - inotifywait 运行守护程序模式给出错误无法初始化 inotify

我在守护进程模式下运行 inotifywait (inotify-tools-3.14-1),但是,它给出了以下错误并且没有建立手表。此外,由于它在 while 循环中,因此创建了许多 inotifywait 守护进程。

如果使用 --monitor 而不是 --daemon 运行,我没有这样的问题。有人可以帮忙修复它吗?非常感谢。

"无法初始化 inotify。您运行的是 Linux 2.6.13 或更高版本,并且在编译内核时是否启用了 CONFIG_INOTIFY 选项?如果是这样,则出现了一些神秘的问题。请发送电子邮件至 radu.voicilas@gmail.com 和提到你看到了这条消息。

下面是代码:

0 投票
1 回答
1876 浏览

bash - 在运行脚本之前使用 inotifywait (或替代方法)等待 rsync 传输完成?

我想设置 inotifywait 以便它监视一个文件夹,并且当将某些内容复制到该文件夹​​(使用 rsync 的 lsyncd)时,我希望 inotifywait 坐下来等到 rsync 完成,然后再调用脚本来处理新文件夹。

我一直在网上研究是否有人这样做,但我没有找到太多。

尽管我了解一些基础知识,但我并不是最精通 bash 脚本。

这是我发现的一个小脚本,它会暂停一秒钟,但每次传输仍会触发十几个事件:

我很乐意提供更多细节或信息。

谢谢你。

0 投票
1 回答
887 浏览

inotify - inotifywait 输出始终具有具有 .filepart 的文件名

我正在使用 inotifywait 来监视使用 WinScp 的大型文件传输:

但它总是在最后打印出带有 .filepart 的文件名。在目标目录下,传输完成后,它具有正确的文件名,但没有 .filepart。而且我不确定为什么事件moved_to不在输出中。

有人可以让我知道我应该注意什么事件,以便 .filepart 不是 inotifywait 输出中文件名的一部分吗?谢谢。

0 投票
1 回答
681 浏览

linux - 使用 expect 和 inotifywait 观察 Linux 上文件夹的变化

我最初想要一个脚本,当我在我的电脑中插入一个 USB 记忆棒时运行一个脚本,然后当它被移除时运行另一个脚本,我搞砸了 udev 没有任何成功,所以这显然不是最好的选择,然后我遇到了inotifywait 我可以在我的驱动器安装时查看一个文件夹,因为这会给我我正在寻找的 CREATE,ISDIR myfolder 输出,但是使用它来实际触发外部脚本有点超出我的编程技能,我看过 EXPECT 但看不到我将如何完成我的任务,我想基本上我需要创建一个遵循下面显示的流程的期望脚本

可能有一种更简单的方法可以做到这一点,但我到处搜索并尝试了各种不同的组合,简而言之,我希望在创建某个文件夹时运行一个脚本,然后在删除它时运行另一个脚本,是否有这样做的简单方法?

0 投票
1 回答
2320 浏览

linux - 如何打印导致 fswatch 执行某些操作的文件路径

我使用fswatch在文件更改时采取一些措施。我使用以下命令:

这很好用,如果我更改几个文件,我会在终端中看到以下内容:

但我也想知道哪个文件实际上导致了这个动作。所以我检查了 fswatch 手册页,它显示了以下内容:

但正如我所说,我的终端中没有列出任何内容。有谁知道我如何显示“受当前事件影响的路径。 ”?

欢迎所有提示!

0 投票
1 回答
798 浏览

linux - 使用 inotifywait 并行处理两个文件

我在用:

监视文件夹以完成文件,然后将其移动到另一个文件夹。

文件成对但在不同的时间制作,即 File1_001.txt 在下午 3 点制作,File1_002.txt 在晚上 9 点制作。我想监视两个文件的完成情况,然后启动一个脚本。

所以我需要另一个 inotifywait 命令或不同的实用程序,它也可以识别两个文件都存在并完成,然后启动脚本。

有谁知道如何解决这个问题?

0 投票
0 回答
842 浏览

shell - 如何使用 inotifywait 监视 shell 脚本中的文件重命名

我需要使用 inotifywait 来监视文件夹。进入该文件夹的文件可能非常大,这就是我使用 close_write 并等待文件完成写入的原因。但是,我还希望在同一文件夹下重命名文件时触发事件。那么我应该注意什么事件来进行文件重命名呢?我查看了 inotifywait 手册页,但没有找到我要查找的内容。inotify IN_MOVED_TO 事件似乎是我需要的,但这不是 inotifywait。

我也尝试了moved_to,但首先,文件重命名时它没有触发事件;其次,如果我同时拥有 close_write 和moved_to,则可能会在触发close_write 之前触发moved_to,以防文件非常大。谢谢。