Какую альтернативу команде tail -f с удобной прокруткой можно использовать? [дубликат]

Вопрос или проблема

Я обычно нахожусь внутри GNU Screen или tmux, и это не дает мне отличной функциональности прокрутки. Есть ли альтернатива tail -f, которая позволяет мне быстро прокручивать вверх?

Инструмент, который похож на most, — это less и more.

Этот вопрос связан, но далеко не конкретен. Я действительно ищу что-то, что позволит мне прокручивать.

Вы можете использовать less +F, чтобы начать less в режиме “вперед навсегда”. В этом режиме less будет работать как tail -f, игнорируя концы файлов и предоставляя постоянный поток текста.

Когда вы захотите прокрутить, нажмите Ctrl+x¹. Чтобы снова войти в режим “вперед навсегда”, нажмите Shift+f
(т.е., большая ‘F’).


¹ Ctrl+c (или что угодно, что посылает SIGINT) также работает, но когда less используется в конвейере, это также имеет побочный эффект убийства всех других команд в конвейере, поэтому Ctrl+x была введена в более поздних версиях less, чтобы этого избежать.

Вы можете использовать

tail -f <файл> | less

тогда вы получите лучшее из обоих миров!

Вы также можете использовать

watch -n 10 cat <файл>

watch(1):

watch – выполнять программу периодически, показывая вывод на весь экран

СИНТАКСИС
    watch [-dhvt] [-n <секунды>] [--differences[=cumulative]] [--help] [--interval=<секунды>] [--no-title] [--version] <команда>
ОПИСАНИЕ

    watch выполняет команду повторно,
    демонстрируя ее вывод (первый экран). 
    Это позволяет вам наблюдать, как вывод программы меняется со временем. 
    По умолчанию, программа выполняется каждые 2 секунды;
    используйте -n или --interval, чтобы задать другой интервал.

    Флаг -d или --differences будет выделять изменения
    между последовательными обновлениями. 
    Опция --cumulative делает выделение “липким”,
    предоставляя постоянно обновляемый просмотр всех позиций, которые когда-либо изменились. 
    Опция -t или --no-title отключает заголовок,
    показывающий интервал, команду и текущее время в верхней части дисплея,
    а также следующую пустую строку.

Я почти всегда использую less для такого рода вещей. Я никогда не использовал режим “вперед навсегда”, вместо этого я просто пользовался сокращениями времени работы less для прокрутки:-

< - Прокрутить к началу потока

> - Прокрутить к концу потока

Обратите внимание, что если буфер читается из файла и в этот файл было добавлено новое содержимое с тех пор, как less был впервые открыт, то новое содержимое будет видно в следующий раз, когда будет нажата >, даже когда не в режиме “вперед навсегда”.

.

Ответ или решение

Чтобы ответить на вопрос о том, что можно использовать в качестве альтернативы команде tail -f, которая предоставляет удобную возможность прокрутки, стоит рассмотреть существующие решения, обеспечивающие не только просмотр в реальном времени, но и возможность свободной навигации по результатам вывода.

Теория

Команда tail -f традиционно используется для мониторинга изменений в реальном времени в текстовых файлах, таких как журналы. Эта команда полезна, когда необходимо отслеживать новые записи, добавляемые в конец файла. Однако когда вам нужно быстро прокрутить вверх и просмотреть более ранние записи, стандартные возможности tail -f могут оказаться ограниченными.

Для решения этой проблемы можно использовать инструменты, которые предлагают функциональность прокрутки, схожую с текстовыми редакторами. Это особенно актуально в средах, таких как GNU Screen или tmux, где стандартные возможности прокрутки могут быть менее удобными.

Пример

Одним из часто рекомендуемых решений является использование команды less в режиме "forward forever". Данная команда обеспечивает аналогичную функциональность с возможностью прокрутки. Основная команда выглядит следующим образом:

less +F <имя_файла>

Объяснение:

  • less +F открывает файл в режиме, который напоминает tail -f. Это позволяет непрерывно отображать новый контент, добавляемый в конец файла.
  • Для временной остановки режима вывода и возможности прокрутки вверх нужно нажать <Ctrl> + X. Чтобы вернуться в режим непрерывного вывода, следует нажать <Shift> + F (буква ‘F’ в верхнем регистре).

Этот подход позволяет легко переключаться между режимом мониторинга и свободной прокруткой по содержимому файла.

Применение

Кроме less +F, существуют и другие методы, которые могут быть применены в зависимости от конкретных нужд:

  1. Использование команды tail -f совместно с less:

    tail -f <имя_файла> | less

    Это даст возможность использовать возможности прокрутки less вместе с живым обновлением данных от tail.

  2. Команда watch:

    watch -n 10 cat <имя_файла>

    watch запускает команду cat через заданные промежутки времени. Это полезно для наблюдения за использованием ресурса в реальном времени, однако не предоставляет тех же возможностей прокрутки, что и less.

  3. Алтернативные инструменты:

    • Если вас интересует управление логами в более широком контексте или с дополнительными функциями (например, фильтрация, агрегирование), можно рассмотреть использование таких инструментов, как multitail или lnav, которые являются специализированными средствами для работы с логами и предоставляют расширенные возможности.

Эти решения позволяют достичь баланса между наблюдением изменений в реальном времени и удобством навигации по данным, что особенно полезно для системных администраторов и разработчиков, работающих с большими объемами логов или других потоков данных. Правильное использование таких инструментов может существенно повысить эффективность аналитических и диагностических процессов в ИТ-системах.

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

Капча загружается...