Отображение «прокручиваемого» файла журнала


28

Через командную строку у меня есть файл журнала, который я хотел бы отслеживать.

То, что я хочу, - это, по сути, tailобновлять при обновлении журнала, заставляя текст прокручиваться вверх по мере добавления новых строк в файл журнала.

Есть ли что-нибудь, что делает это без необходимости писать код?

Ответы:


35

tailимеет -fопцию:

Со manстраницы:

-f, --follow [= {name | descriptor}] выводить добавленные данные по мере роста файла; -f, --follow и --follow = дескриптор эквивалентны

Таким образом, если вы введете:

tail -f [path_and_name_of_logfile] - вы увидите вывод в терминале, к которому добавлен сам файл журнала.

NB [path_and_name_of_logfile]- это параметр, поэтому приведем пример:

tail -f /var/log/messages

Если вы объедините с -n [number_of_lines]опцией, вы можете начать вывод с последнего [number_of_lines] в файле - например,

tail -n 10 -f /var/log/Xorg.0.log

введите описание изображения здесь


Некоторые программы периодически меняют свой файл журнала, перемещая старый файл на новое имя (например, log.0) и начиная заново.

NB logrotate делает это для регистрации файлов для других программ, которые сами этого не делают.

tail -f будет продолжать следовать за старым файлом после его переименования.

tail -F будет следовать за файлом по имени, поэтому переключится, чтобы следовать за новым файлом.


оба ответа на месте ... не понял, что у Хвоста была такая возможность. Вы получаете чек на дополнительную информацию.
WernerCD

Кроме того, есть также несколько отличных скриптов для раскрашивания журнала. Одним из примеров, который приходит на ум, является colorize.pl, и вы достигаете этого, передавая его через скрипт colorize. например: tail -f / var / log / messages | /home/me/colorize.pl
lazyPower

@lazyPower Хорошо, как хорошо. Мне придется повозиться с этим, хотя я не думаю, что это будет очень полезно в моей нынешней ситуации.
WernerCD

18

Хотя tailэто, конечно, обычный способ сделать это, следует отметить, что он lessобладает той же функцией и иногда более полезен.

Если вы открыли файл с помощью, lessто вы можете нажать Shift+, Fчтобы он следовал за файлом (то есть он будет отображать новые строки, как и tail -fон). Вы можете выйти из этого режима с помощью Ctrl+C

Вы также можете начать lessс +Fопции, и в этом случае она начнется в этом режиме. Вообще говоря, +можно использовать для «клавиатурных команд», lessкоторые он будет выполнять при запуске.

Использование lessдля этого имеет то преимущество, что вы можете легко искать файл или просматривать другие области, если возникнет такая необходимость. Например, я часто делал это с файлами журналов.


Никогда не слышал о "следовать" (больше, меньше, хвост, кошка). Приятно знать вещи.
WernerCD

1
Согласовано. Я предпочитаю меньше. Ctrl-C остановит прокрутку, когда вы заметите что-то интересное, затем b, чтобы прокрутить назад или f вперед и / или? искать вперед или назад. g приведет вас к началу файла, а G - к концу. Все что тебе нужно.
Мартин Доу


4

tail имеет две реализации для отслеживания и вывода данных, которые добавляются в файл

  • следуйте за дескриптором файла
  • следовать за файлом с определенным именем

С параметром -f, --followи --follow=descriptor, tailследует за дескриптором файла. Этот метод позволяет файлу следовать за переименованием, но отслеживание останавливается, когда файл поворачивается (новый файл создается с другим дескриптором файла).

Для следующих файлов, которые вращаются, используйте --follow=nameлибо -Fпараметр, который равен --follow=name --retry. Этот способ tailбудет периодически открывать файл, чтобы преодолеть возможное вращение.


1

Я думаю, что ccze - правильный инструмент для вас.

Это то же самое, что раскрасить. Вы можете наблюдать за прокруткой журнала вниз, но его легче читать, потому что строки печатаются цветами (ошибки красного цвета и т. Д.). Вы можете быстро попробовать это с чем-то вроде этого:

tail -f /var/log/syslog | ccze
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.