Конечный хвост -f после печати n строк

10

У меня есть следующее.

  1. Java-процесс записи журналов в файл
  2. Сценарий оболочки, запускающий процесс Java.

Мне нужно прочитать файл журнала после запуска процесса Java, чтобы проверить правильность запуска.

Я пытался с, tail -fно это остается добавить навсегда. Мне нужно tailостановить после печати n строк. Есть способ, как -nвариант для предыдущих строк?

theShadow89
источник
1
Ваш файл журнала очищается каждый раз, после запуска сценария оболочки Java-процесса?
c0rp
Я использую log4j с режимом добавления для записи файла журнала. Он поворачивается после увеличения размера файла до 10 МБ.
theShadow89

Ответы:

24

Вы можете передать вывод команды tail -fto, headчтобы ограничить количество отображаемых строк:

tail -f [PATH] | head -n 100

показать всего 100 строк.

Дэвид Фёрстер
источник
7

Только новые строки

На простой tail -fоснове первые 10 строк взяты из файла, поскольку он уже существует:

tail -f file.log | head -30

записывает 10 строк, log.txtкогда он запущен, и 20 (n-10) строк, которые добавляются позже.

С файлом журнала вы обычно используете -f( --follow), чтобы увидеть строки, написанные в будущем.

Чтобы увидеть только 30 строк, которые были записаны после tailзапуска, ограничьте начальный вывод до 0:

tail -f -n0 file.log | head -30
Volker Siegel
источник