0

请帮我。我有一个日志文件,例如:test_2014_03_13.log

我需要使用 grep 对其进行尾部处理,并且在创建新文件(test_2014_03_14.log)时,我需要将使用 grep 的尾部处理切换到一个新文件而不跳过行。

我需要有关在不跳过数据的情况下进行切换的信息。

对不起,我的英语不好。

4

1 回答 1

0

据我了解你。我认为您想在创建新日志文件时更改日志文件。

您需要运行两个不同的进程。

  • 第一个在目录中搜索更改,以便您知道新文件的创建时间,然后对其进行更改。
  • 第二个进程将负责执行“Tail+Grep”,当它被 Kill 指令关闭时,它应该继续使用最新的文件。

这是 Bash 中的一个示例,您可以轻松地用 Python 编写它。我读得太晚了,您要的是 Python 中的示例。

#!/bin/bash

pidTail=0

inotifywait -m /var/log/yourfiles -e created |
while read path action file; do 
    echo “changed to $file”
    if [ ! $pidTail -eq 0 ]; then
        kill $pidTail
    fi
    tail -f $file | grep something >> newfile.log & 
    pidTail=$!
done

注意:我已经在这里写了,我还没有测试过,它可能包含错别字;)

迟到总比没有好!

资料来源:

bash 中的线程?

脚本来监视新文件的文件夹?

于 2018-01-29T02:23:40.903 回答