Просмотр очень больших логов в Linux

Предположим, что у нас есть огромный файл логов в несколько гигабайт, и нам нужно найти информацию по какому-нибудь слову (это может быть IP-адрес, GUID запроса, код ошибки, логин пользователя — всё, что угодно). Можно, конечно, использовать Far Manager или Midnight Commander. При открытии файла через F3 они НЕ загружают его целиком в память, что позволяет просматривать довольно большие логи и искать по ним. Но есть способ лучше.

Все последующие команды, описанные в статье, приведены для  консоли Linux.

Поиск строк с указанной подстрокой в лог файле:

Эта команда выведет из файла «mylogfile.log» 10 строк перед строками, содержащими подстроку «127.0.0.1», саму строку, содержащую её, и 20 строк после неё. Количество строк после искомой строки, которые нужно вывести задаётся опцией -A, а количество строк перед искомой строкой, которые нужно вывести задаётся опцией -B.

Можно также выводить в результат команды grep номера строк с помощью опции -n:

 Можно также использовать регулярные выражения. Например:

 Этак команда выведет строки, которые начинаются (начало строки указывается специальным символом «^») с «2017-07-05 21:», а затем идёт любой символ (задаётся специальным символом точки «.»), после которого «6:».

Регулярные выражения очень мощны и позволяют задавать достаточно сложные условия поиска. Полное их описание выходит за рамки этой статьи, лучше смотрите в официальной документации на grep. Синтаксис этих регулярны выражений в принципе вполне стандартен, так что если вы знакомы с регулярными выражениями в Java, то проблем у вас возникнуть не должно.

И ещё одна полезная команда для работы с гигантскими файлами логов:

Эта команда выведет 1 000 последних строк из файла «mylogfile.log», а потом будет выводить в консоль и все последующие добавления в этот файл. Количество строк для вывода задаётся опцией -n, а ожидание последующих изменений файла и их вывод в консоль устанавливается опцией -f. Очень полезная команда. Её лучше запомнить наизусть, так она довольно часто бывает полезна.

Просмотр очень больших логов в Linux: 2 комментария

  1. Эти заклинания должны быть доступны лишь самым могущественным чародеям.
    Не нужно публиковать их.
    Прав был Галеон Мистик, когда создал систему, в которой уровень исполняемого заклинания зависит от уровня познания школы.
    А ведь до него любой нуб мог сотворить огромадный огненный шар 200 птс на 200 секунд! Обладая могущественными инструментами вроде того же пресловутого Far Manager!!!

  2. Просмотр очень больших логов это очень большой повод задуматься о том, правильно ли вы их пишете.

    Как минимум необходимо настроить rolling либо по датам (обычный случай), либо по размеру (в случае если логов пишется очень много).

    Еще можно все говно складывать в какой-нибудь эластик.

    Не зачет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *