Введение
При сопровождении серверов на базе Linux регулярный просмотр архивированных журналов событий формата .bz2 часто приводит к нерациональной трате дискового пространства и времени, если каждый файл предварительно извлекать. Утилита bzless полностью исключает этот промежуточный этап, открывая доступ к содержимому сжатого архива через удобный постраничный интерфейс на лету. В данном руководстве мы на практике разберем ключевые приемы работы с bzless, организацию контекстного поиска и сценарии интеграции со смежными инструментами обработки потоков.
1. Подготовка окружения и генерация тестового архива bz2
Перед началом работы убедимся в присутствии утилиты в операционной системе и при необходимости инсталлируем пакет bzip2.

Для воспроизведения реальной рабочей ситуации сформируем демонстрационный файл журнала app_server.log, наполнив его типовыми записями событий с помощью echo.

Чтобы сжать полученный журнал и одновременно сохранить исходный файл на диске, выполним архивацию с флагом -k, сформировав файл app_server.log.bz2.

Проконтролируем успешность операции и оценим атрибуты созданного архива командой ls -lh app_server.log.bz2.

2. Навигация по содержимому архива через bzless
Команда bzless app_server.log.bz2 мгновенно выводит текстовые данные на терминал, исключая фазу предварительной распаковки.
Поскольку утилита построена на возможностях стандартного пейджера less, перемещение по документу осуществляется привычными клавишами стрелок или пробелом, а возврат в командную строку выполняется нажатием q.

3. Включение нумерации строк и навигация по шаблонам поиска
Запуск bzless -N app_server.log.bz2 активирует отображение порядкового номера для каждой строчки внутри открытого журнала.
Параметр -N формирует колонку индексов у левого края терминала, что заметно упрощает локализацию сбойных интервалов и сопоставление временных меток при расследовании инцидентов.
Находясь внутри пейджера, достаточно ввести шаблон поиска со слэшем (к примеру, /ERROR), чтобы подсветить интересующие совпадения, а клавиши n и N позволяют переходить к следующему или предыдущему вхождению соответственно.

4. Сравнение подходов: связка bzcat и bzgrep в автоматизации
Если требуется быстро отобрать только критические события без ручного листания всего документа, вызов bzgrep "ERROR" app_server.log.bz2 отфильтрует и отобразит исключительно строки с маркером ошибки.
Это избавляет системного администратора от рутинного разбора многогигабайтных дампов, когда нужно лишь подтвердить наличие конкретного инцидента.

Конвейер bzcat app_server.log.bz2 | head -n 2 распаковывает архив прямо в стандартный поток вывода, позволяя утилите head мгновенно перехватить первые две строки.
В отличие от bzless, ориентированного на интерактивную работу человека, bzcat служит идеальным поставщиком данных для конвейерной обработки с командами вроде head, grep или awk внутри скриптов автоматизации.

Мы детально рассмотрели применение bzless в среде Ubuntu для мгновенного чтения информации из файлов формата .bz2.
Внедрение этой команды в повседневную практику избавит вас от лишних операций с архивами и существенно ускорит диагностику серверных инцидентов.