- Linux tail command
- Description
- Syntax
- Options
- Examples
- Related commands
- Команда tail
- Синтаксис
- Опции
- Примеры использования команды tail
- Вывод последних строк файла на экран
- Вывод нескольких последних байт файла
- Вывод последних строк из нескольких файлов
- Использование tail для печати последних строк вывода другой команды
- Отслеживание изменений в файлах логов
- Утилита tail в примерах Unix/Linux
- Утилита tail в примерах Unix/Linux
Linux tail command
On Unix-like operating systems, the tail command reads a file, and outputs the last part of it (the «tail»).
The tail command can also monitor data streams and open files, displaying new information as it is written. For example, it’s a useful way to monitor the newest events in a system log in real time.
This page covers the GNU/Linux version of tail.
Description
By default, tail prints the last 10 lines of each file to standard output. If you specify more than one file, each set of output is prefixed with a header showing the file name.
If no file is specified, or if file is a dash («—«), tail reads from standard input.
Syntax
tail [-c |--bytes=>num] [-f] [--follow[=name|descriptor>]] [-F] [-n |--lines=>num] [--max-unchanged-stats[=num]] [--pid=pid] [-p|--quiet|--silent>] [--retry] [-s |--sleep-interval=>num] [-v|--verbose>] [file . ]
Options
Option | Description |
---|---|
-c [+]num, —bytes=[+]num | Output the last num bytes of each file. |
You can also use a plus sign before num to output everything starting at byte num. For instance, -c +1 prints everything.
If you follow more than one file, a header will be printed to indicate which file’s data is being printed.
If the file shrinks instead of grows, tail lets you know with a message.
If you specify name, the file with that name is followed, regardless of its file descriptor.
Examples
Outputs the last 10 lines of the file myfile.txt.
Outputs the last 100 lines of the file myfile.txt.
Outputs the last 10 lines of myfile.txt, and monitors myfile.txt for updates; tail then continues to output any new lines that are added to myfile.txt.
The tail command follows the file forever. To stop it, press Ctrl + C .
tail -f access.log | grep 24.10.160.10
This is a useful example of using tail and grep to selectively monitor a log file in real time.
In this command, tail monitors the file access.log. It pipes access.log‘s final ten lines, and any new lines added, to the grep utility. grep reads the output from tail, and outputs only those lines which contain the IP address 24.10.160.10.
Related commands
cat — Output the contents of a file.
head — Display the first lines of a file.
more — Display text one screen at a time.
pg — Browse page by page through text files.
Команда 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» завершена.