4

我必须查看一定数量的日志文件(可以随时更改)以查看它们是否包含单词«forbidden»当这些单词位于结构中时。在实施过程中,我对执行实施的最佳方式有些怀疑。

  1. 有一个进程来分析要监视的文件列表,并且每次我们看到有变化时,我们发送一个进程来查看其中是否包含“禁止”字样,这是一个好主意吗?
  2. 作为日志文件,修改只发生在最后,所以要查看文件是否已更改,我们必须查看大小是否也已修改。进行“主动等待”:
While(1)
 if (“old size!= new size”)
  send process run for this file to see if contains some words “forbidden”.

有人可以给我一些想法并告诉我我正在做的事情是否不正确吗?

4

1 回答 1

0

less对于单个文件,这似乎与所做的非常相似。使用strace我偷看了一点less,它似乎只保留一个打开的文件描述符,然后在循环中休眠一秒钟并尝试读取更多输入。如果没有太多要监控的日志文件(并且您不介意为每个文件保留一个打开的文件描述符),也许您可​​以使用这种方法。

于 2012-05-26T17:35:58.157 回答