Хвост питона с 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
Примечание: я написал это прямо здесь, и я не проверял это, это может содержать опечатки;)
Даже лучше поздно, чем никогда!
Источники: