Переглядайте лише нові записи у зростаючому файлі журналу


20
tail -f x.log

Я використовую цю команду, щоб побачити зростаючий файл журналу в командному рядку.

Мене цікавить лише те, щоб побачити рядки журналів, які записуються у файл після запуску, tail -fі не зацікавлені в журналах, записаних у файл до цього tail -f. Але tail -fкоманда на початку, бере останні 10 рядків і відображає її.

Це мене бентежить, якщо періодично ці журнали створюються (або) вони старі журнали?

Отже, як я можу налаштувати хвіст -f, щоб виводити лише нові записи?

logs  tail 

Відповіді:


31

Ви можете спробувати:

tail -n0 -f x.log

З чоловічої сторінки :

-n, --lines = K
виводить останні K рядків замість останніх 10 рядків; або використовуйте -n + K для виведення рядків, починаючи з Kth


12

Ви можете використовувати -n0опцію, щоб показати 0 рядків. Так

tail -n0 -f some.log

2

Ви також можете використовувати lessкоманди типу

  1. less file_name.log (файл журналу відкриється та покаже першу сторінку файлу журналу)
  2. натисніть shift+ f(діяти так само, як і хвіст -f)
  3. У випадку, якщо вам потрібно знайти будь-яке ключове слово у файлі журналу. натисніть ctrl+, cщоб вийти з режиму хвоста та шукати ключове слово як /ключове слово та ?ключове слово.

Це не переглядає лише нові записи у зростаючому файлі журналу.
Моторошний

0

Я створив такий підхід, коли мені довелося контролювати записи всередині контейнера docker:

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

Сподіваюся, це допомагає!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.