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


10

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

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

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

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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.