Linux and tail command

Команда 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

Читайте также:  Copying directory to directory in linux

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

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

Выводы

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

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

Источник

Linux tail command

Computer Hope

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.

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.

Источник

Using tail Command in Linux

The tail command is one of the several ways to display file contents or part of it. You can also live monitor changes made to files with it. Here are some common examples.

There are several commands to view the contents of a file in Linux. Tail command is one of them. And as the name suggests, the tail command is used to print the end part of a file. This can be useful when dealing with config files where the new changes are made to the end of the file. The tail command also allows you to view the changes made to a file live. This is extensively used for monitoring log files in real-time while troubleshooting issues. In this tutorial, I will show how you can use the tail command by sharing some practical examples of it.

How to use the tail command in Linux

To use any command in the terminal, execution of the command in the right syntax is compulsory, so let’s start with its syntax first.

  • [option] allows you to tweak the default behavior of the command.
  • [file] is where you’d enter the file name that you want to pair with the tail command.

To make things easy to understand, I will be using the Haruki.txt text file containing the following line:

Hear the Wind Sing (1979) Pinball, 1973 (1980) A Wild Sheep Chase (1982) Hard-Boiled Wonderland and the End of the World (1985) Norwegian Wood (1987) Dance Dance Dance (1990) South of the Border, West of the Sun (1992) The Wind-Up Bird Chronicle (1994) Sputnik Sweetheart (1999) Kafka on the Shore (2002) After Dark (2004) 1Q84 (2009-2010) Colorless Tsukuru Tazaki and His Years of Pilgrimage (2013) Men Without Women (2014) Killing Commendatore (2017)

And when the tail command is executed without any options, it prints the last 10 lines of the file:

The default behavior of the tail command

Quite obviously, if there are less than 10 lines, tail command will display all the lines by default.

But you can do more than just this! Let me tell you how.

Tail command examples

In this section, I will share different examples of the tail command, using its different options.

You’ll see some command examples with text inside <>. This indicates that you need to replace the content along with < and >with a suitable value.

1. Print the last N lines

As I mentioned earlier, the tail command prints the last ten lines by default but you may not always want the same behavior.

To print the desired number of last N lines, all you have to do is use the -n flag and append the number of the last N lines you want to be printed:

For example, here, I printed the last three lines of my text file named Haruki.txt :

print the last N lines using the tail command

You can also use a number higher than 10 here.

2. Print everything from the N line

So if you want the output from a specific point, this can be very handy.

To do so, you’d have to use the -n flag and append the line number from where you want to print the file with the + sign:

So let’s say I want to print everything from the 5th line in the text file Haruki.txt then, I will use the following command:

Print everything from the N line using the tail command

3. Print the filename with the output

You may find yourself in a situation where you want to print the filename with the output given by the tail command.

A good example will be while redirecting the output of multiple files with tail commands to a single file and you want to separate the output.

To do so, you’d have to use the -v flag, which will get you a verbose output:

Here, I used the previous example, but this time, I added the option for the verbose output:

use the verbose output with the tail command

4. Use multiple files with the tail command

Sometimes, you may want to use multiple files with the tail command, and it’s pretty simple! All you have to do is use the multiple filenames and the tail command will take care of the rest:

For example, here, printed the last three lines of the two different text files: Haruki.txt and Premchand.txt :

tail -n 3 Haruki.txt Premchand.txt

use multiple files with the tail command

And if you notice carefully, it prints the filename by default, which is nice.

If you want to skip the filename from the output, use the -q flag (quiet mode):

use quite mode in the tail command

5. Monitor changes made to file live

This is an excellent feature of the tail command. Not only you can see the last few lines, but it can also display any new lines added to it. How cool is that!

To do so, use the -f (follow) flag with the tail command:

Here’s an example where I used multiple windows in a single terminal. I executed the tail command in one and in the other one, I used the echo command to append the text in the file:

Sysadmins and developers use it to watch log files in real-time. It helps in troubleshooting.

The tail -F is lesser known but slightly better option. In some server configurations, the log files are rotated and created (with the same name again). The tail -f command will not track changes if the file was recreated. However, tail -F will wait for the file to be created and continue monitoring it.

Quick summary of tail command options

Here’s a brief summary covering everything I’ve mentioned so far in this tutorial:

Option Description
-n Display N lines from the end of the file
-n + Print everything from the Nth line
-v Include filename in the output header
-q Removes the filenames from the output
-f Monitor the changes made to the file in real-time
-F Monitor changes in real-time, wait for file to be (re)created

🖥️ Practice what you learn

If you want to test your recently learned knowledge of the tail command, here’s some exercise for you.

  1. Print the last 12 lines of the file
  2. Print only the last line of the file
  3. Add the filename to output while displaying the lines starting from line 15
  4. Print only the 11th line (combine it with the head command)

You can discuss the practice questions in the community:

If you are absolutely new to the command line, we have a good starting point for you.

🗨 We’ll be sharing more Linux command examples every week. Stay tuned for more. And if you have questions or suggestions, the comment section is all yours.

Источник

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