MultiTail - просматривать несколько файлов одновременно

Введение в MultiTail

Что такое MultiTail?

MultiTail позволяет просматривать один или несколько файлов, как оригинальная программа tail. Разница в том, что MultiTail создает несколько окон в вашей консоли. Возможно объединение двух и даже больше логов. Программа может также использовать цвета при отображении логов(через регулярные выражения), для более быстрого выделения того, что важно, а что нет. Она способна отфильтровывать линии(опять же с использованием регулярных выражений). В программе есть интерактивное меню для редактирования данных регулярных выражений, удаление и добавление окна. С помощью MultiTail можно просматривать вывод скриптов и других программ.

Основы

Самое простое использование MultiTail выглядит следующим образом:

multitail файл

MultiTail отобразит ‘файл’ в окне терминала. В нижней части, линия (строка состояния) отображает имя файла, его размер, дату и время, когда в последний раз файл был изменен. Вы можете сделать эту строку состояния статической запустив multitail с параметром ‘-d’ (у меня с этим параметром она вовсе исчезла ).

Немного более сложное:

multitail файл1  файл2

Это разделяет окно терминал на два окна. В каждом окне отображается один файл. В обоих окнах есть строка состояния с информацией о файлах. Окно с ‘файл1’ отображается над окном с ‘файл2’. Вместо того, чтобы отображать окна друг над другом, Вы можете изменить отображение, отобразив их рядом. Для этого можно ввести параметр ‘-s’ в командной строке(у меня программа завершила работу с ошибкой) или нажмите кнопку ‘v’ в то время как программа работает(а вот в интерактивном режиме все хорошо, при повторном нажатии ‘v’, окна вернулись в исходное положение, одно над другим), после нажатия ‘v’ откроется интерактивное меню, ‘введите число столбцов’.
Нажмите клавиши от 0 до 9 для добавления толстой красной линии на текущей позиции окна(что то вроде маркера состояния до и после определенного времени, на линии маркера указывается дата и время установленной метки, по поводу от 0 до 9 сразу подмечу, каждое окно нумеруется 00, 01, 02 итд. 00 соответствует клавише 0 и первому окну, 01 - клавише 1 и второму окну, 02 — клавише 2 и третьему окну итд.

Прокрутка

Разумеется Вы можете прокручивать показ файлов. Для этого в интерактивном режиме нажмите клавишу ‘b’, при просмотре нескольких файлов, Вам сначала нужно выбрать файл. Потом откроется окно с буфером содержимое выбранного файла. Вы можете прокручивать с помощью клавиш стрелочек вверх/вниз и клавиш PgUp/PgDn. Нажмите ‘x’ или ‘q’ для выхода из этого окна. Нельзя прокрутить весь файл, только последних 100 линий. Чтобы сбросить этот предел до чего-то большего или меньшего, нажмите клавишу ‘m’. Вам будет предложено ввести новое значение, например, 1000. Этот параметр можно также установить из командной строки с ключом ‘-m значение’ параметра. С ‘-m’ Вы установите предел для следующего файла, с ‘-M значение’ Вы установите этот параметр для всех следующих файлов в командной строке. Когда Вы нажимаете ‘m’, текущий буфер очищается. (что то не получилось у меня вывести большее число строк… может еще разберусь…).

Объединение файлов

Для этого запускаем multitail с параметром ‘-I’.

multitail файл1 -I файл2

В этом примере выход данных файлов сольется в одном окне.

Просмотр вывода внешних программ

Как я уже упоминал в предисловии, можно не только просматривать файлы с MultiTail, а также результаты работы программ, скриптов др. можно положить внутрь одно или более окон. Для этого, Вам нужно использовать ключ ‘-l’.
Например:

multitail -l ls

Другой пример:

multitail -l "ping localhost"

Как Вы видите, Вам нужно добавить двойные кавычки вокруг команды, когда это необходимо параметрами, иначе MultiTail не будет знать, что параметры предназначены для выбранной программы а не для него.
Если Вы попробовали использовать пример: multitail -l ls. Вы заметили, что MultiTail автоматически закрывает окно, когда внешняя команда завершила свою работу. Есть несколько вариантов, которые можно использовать для управления этим поведением. Например параметр ‘-z’: когда указан, окно просто закрыто, и MultiTail продолжает без всплывающего окна, сообщающего, что работа программы завершилась. Другой вариант: ‘-r интервал’: это вызовет команду, которая будет запускаться каждый ‘интервал’ секунд. Вместо ‘-r интервал’ также доступна опция ‘-R интервал’: запускает следующую команду с интервалом секунд показана только разница с предыдущим запуском команды! Так что если вы запустите MultiTail так:

multitail -R 3 -l "netstat -p tcp"

Вы увидите изменения состояния для каждого TCP - соединения: новые соединения и предыдущие соединения.
Как и в ‘-I файл’, ‘-L команды’ также сливается выход внешних команд и файлов с командами. Да: выход из команд может быть безопасно объединен с лог-файлами. Несколько команд, несколько логов, возможны.

Цвета

MultiTali имеет возможность отображение логов в цвете. Когда Вы устанавливаете параметр ‘~~c’, результат будет раскрашен. Можно устанавливать цвета в интерактивном режиме, нажимаем клавишу**‘c’, выбираем файл к которому намерены применить цвет, откроется окно переключатель цветов, где и выбираем цвет текста. Варианты:‘n’*~~ не использовать цвет,**‘s’* - этот вариант предполагает что Вы наблюдаете файл в системном журнале, ‘m’ - делает что то там, ‘S’ - эта опция позволяет выбрать предопределенные цветовые схемы, эти цветовые схемы должны быть определены в multitail.conf, которые могут храниться в вашем домашнем каталоге или в /etc, ‘f’ - При выборе этой опции, вам будет предложено ввести номер поля, используемый для выбора цвета. Вас также попросят ввести символ, который отделяет каждое поле линией. ‘ctrl+g’ — прервать.

Фильтрация с использованием регулярных выражений

Для фильтрации MultiTail используются регулярные выражения. Чтобы не усложнять, она использует их точно так же, как ‘grep’: ‘-e’ указывает: регулярное выражение и ‘-v’ указывает: инвертировать.

Например:

multitail -e "ACPI" /var/log/syslog

multitail -ev "ACPI" -e "NetworkManager" /var/log/syslog

Первый пример показывает только строки из /var/log/syslog которые имеют строку “ACPI”. Второй пример показывает только линии которые не имеют строку “ACPI” но есть строки “NetworkManager”.

MultiTail имеет множество других опций, Вы можете ознакомится с ними в справке:

multitail -h

или в:

man multitail

Установка программы:

emerge app-text/multitail

Результат работы MultiTail

Вариант 1

Результат_работы_MultiTail.jpg

Вариант 2

Результат_работы_MultiTail1.jpg