LINUX.ORG.RU
решено ФорумAdmin

tail -f на вновь создающиеся файлы

 ,


1

3

Привет!

такой вопрос есть файл db-21409.log, в него постоянно льется инфа, по мере заполнения создается новый файл db-21410.log а старый удаляется.

если я запущу что-то вроде

tail -f db-* | grep -a 7400000000163067065 > 74.txt 

tail -f db-* - будет считывать и вновь созданные файлы?

просто в процессах я вижу подобное:

app1     31463 28506  0 17:14 pts/1    00:00:00 tail -f db-21409.log

а в это время уже давно создался следующий файл db-21410.log

tail -f db-* - будет считывать и вновь созданные файлы?

Нет. Звездочка разворачивается шеллом один раз в момент выполнения команды.

pawnhearts ★★★★★
()

открой для себя inotify

anonymous
()

по мере заполнения создается новый файл db-21410.log а старый удаляется.

Не проще все время писать в db.log, просто по мере его заполнения ротировать этот файл (старый сохранять как db-чтототам.log, а вместо него подсовывать чистый)?

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Нужно, чтобы софт, который пишет этот лог это поддерживал. Обычно это делается по какому-то сигналу.

pawnhearts ★★★★★
()

вообще задача бредовая, лог лога! Но, может, автору поможет `since`. Он считывает только новые строки из файла, с момента последнего запуска. Так что `since db*|grep ZZZ` по крону раз в минуту, должно сработать.

Bers666 ★★★★★
()

А, файлы новые создаются. Задница тогда. Нужно менее кривое решение.

Например, писать в один файл, его грепать и ротировать (и следить за ним по tail -F).

Или натравить какой-нить сислоггер на этот файл. syslog-ng отлично справится. А дальше грепать можно его средствами. И ротацию логов он тебе обеспечит.

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

Да вы батенька эстет :) Выше же уже написали inotify спасет.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.