问题标签 [file-monitoring]

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 回答
1415 浏览

python - 如何在读取时检测文件已被截断

我正在从一组文件(日志文件)中读取行,因为它们是使用 pyinotify 编写的。

我正在使用 python 本机方法打开和读取文件:

这通常是稳定的,可以处理被删除和重新创建的文件。pyinotify 将通知取消链接和后续链接。

但是,某些日志文件并未被删除。相反,它们被截断并将新内容写入同一文件的开头。

我无法可靠地检测到何时发生这种情况,因为 pyinotify 只会报告一次写入。我目前得到的唯一证据是 pyinotify 报告写入并readline()返回一个空字符串。但是,两个后续写入可能会触发相同的行为。

我曾考虑将文件的大小与文件的大小进行比较,file.tell()但根据文档tell会产生一个不透明的数字,而且似乎不能相信这是一个字节数。

有没有一种简单的方法来检测文件在读取时被截断?


编辑:

可以使用简单的 shell 命令模拟截断文件:

为了补充这一点,可以使用一个简单的 python 脚本来确认file.tell()文件被截断时不会减少:

0 投票
1 回答
58 浏览

bash - 如何在不清除屏幕的情况下刷新多行变量输出

我正在尝试监视一个日志文件,然后显示特定请求调用的计数,输出将显示标题行,其中包含每个请求的名称“PUT GET HEAD”,并且低于每行每个节点的请求计数。我需要刷新显示每 1 秒计数的变量的输出

下面代码的问题,脚本不断删除前几行并上升到屏幕顶部,而输出应该是固定的,只有请求的数量应该刷新

这是预期的输出:

节点 PUT - HEAD - GET - DELETE node-2 1849 2183 41387 0

#

节点 3 5339 8534 40838 0

#

节点 4 1829 2196 46503 0

#

预期输出:每 1 秒刷新一次数字时应显示与上面相同

0 投票
1 回答
324 浏览

java - 如何使用观察者模式通过线程进行文件监控?

我正在尝试将观察者模式实现到我制作的游戏中。当使用线程在战区文件中创建反派时,我想使用观察者模式使用线程创建英雄并将其添加到同一文件中。恶棍和英雄是使用工厂方法模式创建的。我不确定将我的 HeroCreationMain 类链接到观察者模式类的去向。

恶棍创造

英雄创造

观察者

可观察的

敌人状态

0 投票
0 回答
99 浏览

python-3.x - 无法在 Windows Server 2012R2 中使用 Python Watch Dog 库监控网络存储位置(网络共享路径)

当我使用下面的代码监视同一服务器上的任何存储位置时,它工作得很好。然而,当我尝试将其与网络驱动器(已经映射到我的机器)一起使用时,它不起作用。请查看代码并建议如何进行。请让我知道我是否可以使用任何其他库或其他技术来实现该目的。目前我正在使用 Python Watchdog 库。

0 投票
1 回答
28 浏览

file-monitoring - 文件和文件夹监控效率

我正在学习如何使用新的 C++ 文件系统库,并且我已经看到了如何实现文件夹监视器的示例,它可以做三件简单的事情:检测文件创建;文件修改;和文件删除。它通过在每个设定的时间段(例如 1000 毫秒)搜索整个文件夹来工作,并根据您自己的代码保存的另一条记录(例如 unordered_map/hash 表)检查文件系统中的每个文件条目,以便每次记录更新 查询文件系统以获取文件夹中每个文件的名称,然后在现有文件的记录中搜索此名称。这发生在文件夹中的文件数量上。

我想知道是否有更有效的方法来处理这个问题,例如将操作系统检测到的每个修改添加到数组或排队,这样每次监视器更新时,它只会检查是否有任何内容已放置在此数组中以获取文件创建,删除或修改,而不是检查文件系统中每个文件与文件记录之间的差异。

0 投票
1 回答
167 浏览

c# - Http-Server,监控路径/文件夹

我不知道从哪里开始,我从模板管理代码。使用下面的代码,我可以从 Http 服务器端下载所有文件。它会检查这是否已经下载,如果是,那么它不会从站点中获取它。我只想下载部分文件。我正在尝试想一个简单的解决方案来实现以下几点:

  1. 获取 Server-Http 上的最后修改数据或最后创建时间。我了解如何从文件夹执行此操作,但我不想下载文件然后检查,我需要在服务器上执行此操作。Onlocal pc 将作为 FileInfo infoSource = new FileInfo(sourceDir);,然后infoSource.CreationTimesourceDir 是文件路径。http上可能有类似的东西?
  2. 仅从服务器站点获取最新的 10 个文件。没有最新的,但最新的 10。
  3. 监视服务器站点,以便一旦将文件 MyFileName_Version 放在站点上,它将获取具有此命名约定的最新文件。

这些方法中的任何一种都对我有用,但我仍然是这些方法的新手,所以在这里挣扎。目前我有以下代码:

0 投票
1 回答
70 浏览

python - linux中的Python 3文件更改事件侦听器不使用模块或安装

我有许多异步线程,我想在其中触发文件更改事件。

理想情况下,它的工作方式类似于看门狗或 inotify,但我无法安装任何东西,包括新模块(合规和政治)。大约有 100 个文件可能会更改。这将在至少使用 Python 3.5 的大约 150,000 个 Linux 实例中部署。它确实需要尽可能高效,所以我不希望线程坐在 while 循环中。它还需要相当及时。我预计有时会在一秒钟内进行多次更改,因此延迟和睡眠计时器也已失效。

有没有可能使用与看门狗/通知相同的机制、某些默认模块或其他方法来实现此目的的方法?

1024 谢谢!

0 投票
1 回答
101 浏览

c# - c# FileSystemWatcher如何处理多个文件?

如果您有 c# FileSystemWatcher 使用 Created 事件监视目录,如果处理需要一段时间,您将如何处理多个文件并处理它们。所以一些文件进来,然后开始处理。如果在处理完成之前有更多文件进入,应该如何处理或者 FileSystemWatcher Created 事件是否将它们排队?对于这种情况,您是否需要使用异步方法事件处理程序?

0 投票
1 回答
111 浏览

python - 使用 poll 或 select 监控 proc 挂载

我正在尝试提出一个脚本来监视 /proc/mounts 并在检测到只读文件系统时通知回来。

在 python 中,一种方法是将 /proc/mounts 的值存储在列表中,并cat /proc/mounts在循环中继续执行 a 并直接检查“ro”实体。但是我想使用 poll 或 select 来代替它,因为这样很有效并且仅在事件发生时才采取行动。

我看到民意调查更适合选择。据我了解,我们可以将 /proc/mounts 的 fd 放在 exceptfds 中进行选择,当有异常时我们会收到通知(请在此处更正我,行中的更改会发出异常信号?)。只是为了测试,我在一个普通文件上尝试它 - 现在,当我打开并e.txt对此文件进行更改时,是否预计会打印整个文件?目前,它没有。我错过了什么?

对于 /proc/mounts 监控:

如何使用 select 或 poll 来实现这一点。

0 投票
0 回答
31 浏览

python - 有没有办法使用 sudo 访问文件在 python 中监视文件系统?

目前我看到我们有看门狗库,但它只允许看门狗在 linux 操作系统或 windows 操作系统上的登录用户中访问的那些文件。

有没有办法为通过 sudo 访问的文件添加看门狗?

我确实尝试过 watchdog.observer 但它的抛出错误权限被拒绝。