9 Практичних прикладів використання команди Tail у Linux

Як користувачі Linux, ми часто працюємо з тривалими фоновими процесами Linux, які називаються демонами або службами. Деякі з поширених прикладів таких служб – Secure Shell (sshd), Network Manager (networkd), Volume Manager (LVM), Cron, і список можна продовжувати.

Багато разів нам необхідно відстежувати журнали цих служб для налагодження системних проблем. Однак одна з основних проблем полягає в тому, що ці служби генерують велику кількість журналів, і в більшості випадків перегляд цих журналів стає громіздким, тому тут ми можемо використовувати команду tail.

Команда tail – це утиліта командного рядка, аналогічна команді head, яка читає файл і друкує останні 10 рядків (вміст) одного або декількох файлів на стандартний вивід.

Синтаксис команди tail

Синтаксис команди tail аналогічний іншим командам Linux:

$ tail [OPTIONS] [FILE-1] [FILE-2] ...

1. Друк останніх 10 рядків файлу в Linux

За замовчуванням команда tail друкує останні 10 рядків заданого файлу, як показано на малюнку.

$ tail /var/log/secure

Тут ми бачимо, що наведена вище команда показує останні десять рядків із файлу /var/log/secure.

2. Друк останніх N рядків файлу в Linux

В останньому прикладі команда друкує останні 10 рядків даного файлу. Однак ми можемо використовувати опцію -n, яка дозволяє нам обмежити кількість рядків, що виводяться на екран, як показано на малюнку.

$ tail -n 3 /var/log/secure

У цьому прикладі ми бачимо, що тепер команда показує тільки останні три рядки замість десяти рядків.

3 Ігнорування перших N рядків файлу в Linux

Тут ми можемо використовувати символ плюс (+) з опцією -n, яка дозволяє нам керувати точкою відліку від заданого файлу.

Щоб зрозуміти це, давайте використаємо значення +5, щоб почати виведення з 5-го рядка:

$ tail -n +5 /var/log/secure

4. Показати останні N символів файлу

Аналогічно рядкам, ми також можемо використовувати команду для відображення останніх N символів файлу за допомогою опції -c, як показано нижче:

$ tail -c 7 /var/log/secure

У цьому прикладі ми бачимо, що команда показує останні сім ASCII-символів заданого файлу.

5. Видалення перших N символів файлу

Аналогічно, ми можемо використовувати символ плюс (+) з опцією -c, щоб пропустити перші N символів. Отже, давайте пропустимо перший рядок файлу за допомогою такої команди:

$ tail -c +5 /var/log/secure

Тут ми бачимо, що команда показує всі рядки, крім першого.

6. Показувати ім’я файлу в заголовку

Ми можемо вказати команді tail відображати ім’я поточного файлу у вигляді заголовка, що дуже зручно під час роботи з кількома файлами.

Отже, давайте скористаємося опцією -v, щоб увімкнути відображення заголовка:

$ tail -n 3 -v /var/log/secure

У наведеному вище виводі, ==> /var/log/secure <== являє собою відображуваний заголовок.

7. Показувати ім’я файлу як заголовок у кількох файлах

Як і будь-яка інша команда обробки файлів, команда tail може використовувати кілька файлів. У таких випадках для поділу вмісту файлів використовується відображуваний заголовок.

$ tail -n 3 -v /var/log/secure /var/log/secure-20230402

У наведеному вище висновку ми можемо бачити відображуваний заголовок для кожного файлу.

8. Як вимкнути відображення заголовка у файлі

У попередньому прикладі ми бачили, що команда вмикає відображення заголовка під час роботи з кількома файлами. Однак ми можемо відключити цю поведінку за замовчуванням за допомогою опції -q.

$ tail -q -n 3 /var/log/secure /var/log/secure-20230402

Тут ми бачимо, що тепер команда відображає вміст файлу один за одним без будь-якого заголовка.

9. Як стежити за змінами у файлі

Досі ми бачили, що команда tail завершує роботу, щойно обробить необхідну кількість рядків або символів. Однак іноді ми хочемо переглянути щойно створені журнали.

У таких випадках ми можемо використовувати опцію -f, яка дає змогу стежити за змінами у файлі в режимі реального часу.

Щоб зрозуміти це, спочатку виконаємо наведену нижче команду в першому терміналі:

$ tail -f /var/log/messages

Тут ми бачимо, що команда чекає нескінченно довго після відображення останніх десяти рядків:

Далі, давайте відкриємо інший термінал і додамо деякий текст у файл numbers-2.txt:

$ echo "View Logs in Real-Time" >> /var/log/messages

Тепер давайте перемкнемося на перший термінал, щоб переглянути новий доданий текст:

$ tail -f /var/log/messages

Тут ми бачимо, що команда tail показує щойно доданий текст.

Поділіться своєю любов'ю

Залишити відповідь

0 комментариев
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x