- Команда tail Linux
- Команда tail в Linux
- Использование tail
- Выводы
- Команда tail
- Синтаксис
- Опции
- Примеры использования команды tail
- Вывод последних строк файла на экран
- Вывод нескольких последних байт файла
- Вывод последних строк из нескольких файлов
- Использование tail для печати последних строк вывода другой команды
- Отслеживание изменений в файлах логов
- Утилита tail в примерах Unix/Linux
- Утилита tail в примерах Unix/Linux
Команда 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), то есть, например, если во время отслеживания файл будет переименован, то это не повлияет на выполнение команды.
Пытаться открыть файл, если он недоступен. Опция используется только при отслеживании файла, то есть совместно с опцией -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
Утилита 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» завершена.