Linux прочитать последние 10 строк

Команда tail Linux

Все знают о команде cat, которая используется для просмотра содержимого файлов. Но в некоторых случаях вам не нужно смотреть весь файл, иногда достаточно посмотреть только то, что находится в конце файла. Например, когда вы хотите посмотреть содержимое лог файла, то вам не нужно то, с чего он начинается, вам будет достаточно последних сообщений об ошибках.

Для этого можно использовать команду tail, она позволяет выводить заданное количество строк с конца файла, а также выводить новые строки в интерактивном режиме. В этой статье будет рассмотрена команда tail Linux.

Команда tail в Linux

Перед тем как мы будем рассматривать примеры tail linux, давайте разберем ее синтаксис и опции. А синтаксис очень прост:

$ tail опции файл

По умолчанию утилита выводит десять последних строк из файла, но ее поведение можно настроить с помощью опций:

  • -c — выводить указанное количество байт с конца файла;
  • -f — обновлять информацию по мере появления новых строк в файле;
  • -n — выводить указанное количество строк из конца файла;
  • —pid — используется с опцией -f, позволяет завершить работу утилиты, когда завершится указанный процесс;
  • -q — не выводить имена файлов;
  • —retry — повторять попытки открыть файл, если он недоступен;
  • -v — выводить подробную информацию о файле;

В качестве значения параметра -c можно использовать число с приставкой b, kB, K, MB, M, GB, G T, P, E, Z, Y. Еще есть одно замечание по поводу имен файлов. По умолчанию утилита не отслеживает изменение имен, но вы можете указать что нужно отслеживать файл по дескриптору, подробнее в примерах.

Использование tail

Теперь, когда вы знаете основные опции, рассмотрим приемы работы с утилитой. Самый простой пример — выводим последние десять строк файла:

Если вам недостаточно 10 строк и нужно намного больше, то вы можете увеличить этот параметр с помощью опции -n:

Когда вы хотите отслеживать появление новых строк в файле, добавьте опцию -f:

Вы можете открыть несколько файлов одновременно, просто перечислив их в параметрах:

tail /var/log/syslog /var/log/Xorg.0.log

С помощью опции -s вы можете задать частоту обновления файла. По умолчанию данные обновляются раз в секунду, но вы можете настроить, например, обновление раз в пять секунд:

Читайте также:  Отобразить скрытые папки линукс

При открытии нескольких файлов будет выводиться имя файла перед участком кода. Если вы хотите убрать этот заголовок, добавьте опцию -q:

tail -q var/log/syslog /var/log/Xorg.0.log

Если вас интересует не число строк, а именно число байт, то вы можете их указать с помощью опции -c:

Для удобства, вы можете выбирать не все строки, а отфильтровать интересующие вас:

tail -f /var/log/syslog | grep err

Особенно, это полезно при анализе логов веб сервера или поиске ошибок в реальном времени. Если файл не открывается, вы можете использовать опцию retry чтобы повторять попытки:

tail -f —retry /var/log/syslog | grep err

Как я говорил в начале статьи, по умолчанию опция -f или —follow отслеживает файл по его имени, но вы можете включить режим отслеживания по дескриптору файла, тогда даже если имя измениться, вы будете получать всю информацию:

tail —follow=descriptor /var/log/syslog | grep err

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Команда tail

Печатает последние 10 строк файла или последние 10 строк вывода другой команды. Количество печатаемых строк можно изменить. Поддерживает отслеживание изменения содержимого файла.

Синтаксис

ФАЙЛ — это один или несколько файлов, записанных через через пробел, строки которых необходимо вывести.

Если указывается несколько файлов, то выводится последние N строк из каждого файла. Перед началом вывода строк каждого файла выводится имя файла.

Опции

Задает количество строк, которое необходимо вывести.
LINES — количество первых строк из файла, которое нужно вывести.
Если перед LINES указан знак + , то выводится все содержимое файла, кроме первых N-1 строк (где N= LINES ), то есть начиная со строки с номером N.

Задает количество байт, которое необходимо вывести.
BYTES — количество последних байт из файла, которое нужно вывести.
Если перед значением BYTES указан знак + , то выводится все содержимое файла, кроме первых N-1 байт (где N= BYTES ), то есть начиная с байта с номером N.

Значение BYTES можно указать с суффиксом: b (512 байт), kB (1000 байт), MB (1000*1000), M (1024*1024), GB (1000*1000*1000), G (1024*1024*1024), T, P, E, Z, Y.
Также можно использовать двоичные приставки: KiB=K, MiB=M и так далее.

Отслеживать появление новых строк в файле. Выводить последние строки файла по мере их появления.
По умолчанию tails следит за дескриптором файла (—follow=descriptor), то есть, например, если во время отслеживания файл будет переименован, то это не повлияет на выполнение команды.

Читайте также:  About terminal server linux

Пытаться открыть файл, если он недоступен. Опция используется только при отслеживании файла, то есть совместно с опцией -f или —follow=
Опцию удобно использовать при отслеживании файлов логов, которые могут ротироваться, то есть отслеживаемый файл периодически может быть недоступен.

То же самое, что и —follow=name —retry. Отслеживать файл по имени; пытаться открыть, если недоступен.

Используется совместно с опцией —follow=name. Повторно открывает файл, размер которого не изменился после N проверок (по умолчанию 5), чтобы проверить был ли файл переименован (например, это ротируемый файл логов) или выполнен unlink.

Прекратить отслеживание, если процесс с идентификатором PID умирает. Используется совместно с опцией -f.

Делать паузу примерно N секунд (по умолчанию 1) между проверками файла. Используется совместно с опцией -f. При inotify и —pid=PID выполнять проверку процесса PID минимум один раз в N секунд.

Не печатать имена файлов.
Примечание: Имена файлов печатаются, если указано несколько файлов. Если данная опция установлена, то имена файлов не печатаются, и между содержимым разных файлов не добавляется пустая строка.

Примеры использования команды tail

Рассмотрим несколько примеров использования команды tail в Linux.

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

Вывести последние 10 строк файла:

Вывести последние 25 строк файла:

Вывод нескольких последних байт файла

Вывести содержимое последних 100 байт файла:

Вывести содержимое последнего мегабайта файла (здесь используется суффикс M):

Вывод последних строк из нескольких файлов

Вывести последние 3 строки из каждого файла:

tail -n3 myfile.txt myfile2.txt

Использование tail для печати последних строк вывода другой команды

Команду tail можно использовать для того, чтобы напечатать последние N строк вывода другой команды.

Выполнить команду ls -t и вывести только последние 5 строк. Команда ls -t выводит на экран список файлов в директории и сортирует их по времени изменения (так как указан ключ -t). В данном примере будут выведены не все файлы, а только последние 5.

Вывести содержимое файла командой cat, но напечатать только последние 12 строк:

cat /var/log/Xorg.0.log | tail -n12

Отслеживание изменений в файлах логов

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

Отслеживать появление новых строк в файле /var/log/messages и выводить последние 20 строк файла:

tail -n20 -F /var/log/messages

Предыдущая команда имеет особенность, заключающуюся в том, что, например, если во время отслеживания файл будет очищен или заменен другим файлом, то после этого команда tail напечатает все содержимое файла. Если такое поведение неприемлемо, то можно воспользоваться командой watch совместно с tail. Выводить последние 20 строк файла раз в 2 секунды:

watch -n2 tail -n20 myfile.txt

Источник

Читайте также:  Linux dns network manager

Утилита tail в примерах Unix/Linux

Команда tail в операционных системах UNIX или Linux используется для вывода последних N строк из файла на терминал. Команда tail особенно используется с лог-файлами, чтобы вывести последние несколько строк, чтобы знать о ошибках. Синтаксис команды tail таков:

Параметры команды tail таковы:

  • c : Выводит последние N байт указанного файла; Выводит + печатает символы N байт в файле.
  • n : Выводит последние N строк; Выводит + печатает строки из N-го количества строк в файле.
  • f : Вывод строк в режиме реального времени ( выводит когда появляются новые строки в файле).

Утилита tail в примерах Unix/Linux

В своей статье «Утилита tail в примерах Unix/Linux» я хотел бы рассказать о замечательной утилите tail и привести готовые примеры использования.

Создайте следующий файл use_tail.txt в операционной системе Linux или Unix для практикующих примеров со следующим содержанием:

# cat /home/captain/use_tail.txt This is my unix/linux blog I will write some examples I will use tail with this file Ok. Let's start it!

Вывод последних 10 строк.

По умолчанию, команда tail печатает последние 10 строк из файла:

# tail /home/captain/use_tail.txt This is my unix/linux blog I will write some examples I will use tail with this file Ok. Let's start it!

Вывести последние N строк.

Используйте опцию «-n», чтобы напечатать последние N строк из файла. Следующий пример печатает последние 3 строки из файла:

# tail -n3 /home/captain/use_tail.txt I will use tail with this file Ok. Let's start it!

Вывести строки из N-й строки.

Вы можете печатать строки, начиная с N-й строки в файле. Следующий пример печатает строки начиная с 4-й линии:

# tail -n+4 /home/captain/use_tail.txt Ok. Let's start it!

Вывести последние n байт.

Использовать опцию «-c» для вывода последних N байт из файла. Следующий пример печатает последние 7 байт из файла:

# tail -c7 /home/captain/use_tail.txt rt it!

5. Print characters from the Nth byte

Используйте следующий символ «+» с опцией «-c» чтобы печатать символы с N-го байта. Следующий пример печатает символы с 69-го байта.

# tail -c+69 /home/captain/use_tail.txt l with this file Ok. Let's start it!

Выводить последние строки из файла динамически (в режиме реального времени).

Опция «-f» выводит строки из файла, который динамично растет. При запуске команды «tail -f» с именем файла, он будет печатает последние 10 строк и ожидать новых линий, которые будут добавлены в файл. Всякий раз, когда новые линии добавляется в файл, команда tail также добавляет новые строки на стандартный вывод (на терминал). Опция «-f» полезна при отладке приложений.. Вы можете использовать опцию «-f», чтобы начать анализировать вывод разных ошибок в режиме реального времени:

# tail -f /var/log/nginx/error-linux-notes.log

На этом, у меня все, тема «Утилита tail в примерах Unix/Linux» завершена.

Источник

Оцените статью
Adblock
detector