У меня есть файл журнала в формате .csv в Linux, который постоянно обновляется. Я хочу просмотреть файл журнала по мере его обновления. Есть ли какие-либо команды Linux для этого?
Просмотр файла журнала в Linux динамически
Ответ 1
tail -f yourlog.csv
Добавленные строки будут постоянно отображаться.
Ответ 2
Как указывали другие, tail -f file
является наиболее распространенным решением. Проблема в том, что результаты просто прокручиваются, и вы не можете вернуться и искать их, если ваш терминал не поддерживает его, и у вас достаточно буферизированных строк в вашем терминале.
Менее известным решением, которое мне нравится, является использование less
; если вы наберете Shift - F при просмотре файла с less
, он начнет следовать за окончанием файла, как tail -f
. Кроме того, вы можете запустить less
с помощью less +F
, чтобы войти в этот режим при запуске. В любое время вы можете набрать Ctrl - C, чтобы остановить выполнение файла, а затем перейти вверх и вниз, выполнить поиск с помощью / и использовать less
, как обычно. Это может быть очень полезно, если вы видите что-то интересное в журнале, но оно прокручивается с экрана или если вы хотите немного вернуться, чтобы проверить что-то, что вы, возможно, пропустили. Когда вы закончите поиск, нажмите Shift - F еще раз, чтобы снова запустить файл.
multitail
выглядит как приятное решение для нескольких файлов в отдельных окнах; если вы просматриваете несколько файлов с помощью tail -f
, каждый из них будет чередоваться друг с другом (с заголовками, чтобы отличить их), что может быть не так, как вы хотите их просматривать.
tail -f
(то есть капитал -F
, в отличие от нижнего регистра -F
) - это нестандартный флаг (доступен для Linux, Cygwin, MacOS X, FreeBSD и NetBSD), который лучше работает для просмотра файлов журналов, которые иногда могут вращаться; для процесса переименовать файл журнала, а затем создать вместо него новый файл журнала, чтобы избежать слишком большого объема одного файла журнала. tail -f
будет продолжать следовать за старым файлом, который больше не является активным файлом журнала, а tail -f
будет следить за созданием нового файла и вместо этого начать следовать этому. Если вы используете less
для наблюдения за файлом, вы можете использовать флаг --follow-name
, чтобы сделать так же less
.
(благодаря эфемерности для подсказок на less +F
и less --follow-name
)
Ответ 3
tail -f foo.csv
Ответ 4
На всякий случай, если вы хотите контролировать несколько файлов, есть хороший инструмент под названием multitail, который позволяет объединить вывод из двух или больше файлов и отслеживать их в режиме реального времени. multitail также позволяет перемещаться вперед и назад в контролируемых файлах.
Ответ 5
tail -f
и все его друзья - старая школа. multitail
выглядит лучше, но реальный способ сжечь процессор, наблюдая за вашими файлами журнала, - это использовать glTail.
Ответ 6
tail -lf logfile.csv.
Если вы вошли в GUI, вы можете использовать коврик для мыши, чтобы динамически просматривать журнал.
Ответ 7
vsConsole FileView может помочь, если вы предпочитаете отслеживать свои журналы через веб-приложение. См. Демонстрацию в http://demo.vamonossoftware.com/
Требуется запустить сервер приложений Java, развернуть vsConsole и запустить агентов на сервере, содержащем журналы, поэтому я предполагаю, что это более тяжелое решение, чем то, что вам нужно здесь. (Хорошо для разработчиков/тестирующих команд, которые просто хотят щелкнуть файл журнала, чтобы увидеть его, а не ssh, cd, tail и т.д.)
Ответ 8
less -S '-#' 4 /var/log/logfile
-S
остановит раздражающую обертку строк.
-#
4
установит шаг горизонтальной прокрутки на четыре столбца вместо значения по умолчанию половины экрана.
Нажмите клавишу "Завершить", чтобы обновить.