Хвост питона с grep

Пожалуйста, помогите мне. У меня есть файлы журнала, например: test_2014_03_13.log

мне нужно привязать его с помощью grep, и когда я создаю новый файл (test_2014_03_14.log), мне нужно переключиться с помощью grep на новый файл без пропуска строк.

Мне нужна информация о переключении без пропуска данных.

Извините за мой плохой английский.

1 ответ

Насколько я тебя понимаю. Я думаю, что вы хотите изменить файл журнала при создании нового.

Вам нужно запустить два разных процесса.

  • Первый для поиска изменений в каталоге, чтобы вы знали, когда был создан новый файл, а затем измените его.
  • Второй процесс будет отвечать за выполнение "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?

Скрипт для мониторинга папки на наличие новых файлов?

Другие вопросы по тегам