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 вы можете задать частоту обновления файла. По умолчанию данные обновляются раз в секунду, но вы можете настроить, например, обновление раз в пять секунд:

Читайте также:  Linux zip with hidden files

При открытии нескольких файлов будет выводиться имя файла перед участком кода. Если вы хотите убрать этот заголовок, добавьте опцию -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.

Источник

Просмотр логов в Linux – tail и less

Если вы взялись за администрирование Linux, будьте готовы к тому, что просмотр и анализ лог-файлов будет отнимать львиную долю времени того времени, что вы проводите в консоли. Анализ лога основной (а чаще всего и единственный) способ разобраться в поведении сервера.

Зачастую, лог содержит тысячи строк, так мало того, может каждую секунду увеличиваться на еще несколько записей. А смотреть желательно в живую, отслеживая реакцию на те или иные действия. Тут нам помогут две утилиты tail и less .

Просмотр логов в Linux с помощью tail .

tail (переводится как хвост) позволяет просмотреть 10 последних строк файла. Если нужно больше, достаточно об этом сказать. Например, 25:

Второй полезный параметр, который можно передать -f . C этим параметром tail выводит заданное количество последних строк и продолжает считывать добавляемые строки, до тех пор пока вы не нажмете Сtrl+C – т.е. вы можете в живую отслеживать изменения в лог-файле:

178.45.0.0 — — [ 23 / Jan / 2016 : 19 : 45 : 02 + 0300 ] «GET / HTTP/1.0» 200 17401 «http://site.ru/allsorts/» «Mozilla/5.0 (iPad; CPU OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A405 Safari/600.1.4»

Читайте также:  Linux операционная система блокнот

217.118.0.0 — — [ 23 / Jan / 2016 : 19 : 46 : 34 + 0300 ] «GET /allsorts HTTP/1.0» 301 — «http://site.ru/» «Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1»

217.118.0.0 — — [ 23 / Jan / 2016 : 19 : 46 : 35 + 0300 ] «GET /allsorts/ HTTP/1.0» 200 16663 «http://site.ru/» «Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1»

85.95.0.0 — — [ 23 / Jan / 2016 : 19 : 47 : 31 + 0300 ] «GET / HTTP/1.0» 200 17401 «http://vk.com/away.php» «Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50»

85.95.0.0 — — [ 23 / Jan / 2016 : 19 : 47 : 34 + 0300 ] «GET /allsorts/ HTTP/1.0» 200 16663 «http://site.ru/» «Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50»

Но самое большое удобство tail в том, что в качестве параметров может быть передано несколько файлов, т.е. вы можете отслеживать несколько связанных лог-файлов одновременно:

[ hc @ host ~ ] # tail -f -n 5 -s 3 /home/sites/web/site.ru/logs/site.ru.log /var/log/httpd/domains/site.ru.error.log

37.113.0.0 — — [ 23 / Jan / 2016 : 19 : 55 : 45 + 0300 ] «GET /wp-content/themes/bigroll/img/delivery-feature-6.png HTTP/1.1» 200 18165 «http://site.ru/delivery/» «Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1»

37.113.0.0 — — [ 23 / Jan / 2016 : 19 : 55 : 46 + 0300 ] «GET /wp-content/themes/bigroll/img/delivery-truck.png HTTP/1.1» 200 15243 «http://site.ru/delivery/» «Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1»

37.113.0.0 — — [ 23 / Jan / 2016 : 19 : 55 : 46 + 0300 ] «GET /wp-content/themes/bigroll/img/scooter-icon-small.png HTTP/1.1» 200 4322 «http://site.ru/delivery/» «Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1»

37.113.0.0 — — [ 23 / Jan / 2016 : 19 : 55 : 46 + 0300 ] «GET /wp-content/themes/bigroll/img/link-button-shadow.png HTTP/1.1» 200 7792 «http://site.ru/delivery/» «Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1»

37.113.0.0 — — [ 23 / Jan / 2016 : 19 : 55 : 46 + 0300 ] «GET /wp-content/themes/bigroll/img/header-bg.png HTTP/1.1» 200 194475 «http://site.ru/delivery/» «Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1»

[ Wed Jan 20 04 : 38 : 36 2016 ] [ error ] [ client 46.166.0.0 ] client denied by server configuration : / home / sites / web / site . ru / public_html / xmlrpc . php

Читайте также:  Linux команда изменить dns

[ Wed Jan 20 04 : 38 : 36 2016 ] [ error ] [ client 46.166.0.0 ] client denied by server configuration : / home / sites / web / site . ru / public_html / xmlrpc . php

[ Wed Jan 20 13 : 15 : 43 2016 ] [ error ] [ client 69.84.0.0 ] client denied by server configuration : / home / sites / web / site . ru / public_html / xmlrpc . php

[ Wed Jan 20 20 : 48 : 58 2016 ] [ error ] [ client 185.112.0.0 ] client denied by server configuration : / home / sites / web / site . ru / public_html / xmlrpc . php

[ Wed Jan 20 22 : 42 : 02 2016 ] [ error ] [ client 5.255.0.0 ] client denied by server configuration : / home / sites / web / site . ru / public_html / xmlrpc . php

Обратите внимание, я использовал конструкцию -s 3 – с помощью данного ключа задается интервал обновления в секундах, т.е. в данном случае перечитываться файлы будут раз в 3 секунды.

Просмотр логов в Linux с помощью less .

При всей простоте и удобстве tail обладает одним существенным недостатком – он показывает только последние строки и вы не имеете возможности поглядеть, что происходило до этих записей или в определенный момент времени. Для таких ситуаций лучше подходит утилита less .

Как видите мы можем спокойно листать содержимое файла с помощью стрелок курсора и клавиш PgUp и PgDn .
Запомните еще несколько полезных клавиш:
q – выход;
g – перейти в начало файла;
G – перейти в конец файла;
Ng – перейти на строку N (например, на 14 строку 14g);
N% – перейти на позицию N% (например, 35%);
F – перейти в режим отслеживания обновления файла, т.е. аналог tail -f ;
/pattern – прямой (вниз по файлу) поиск по образцу pattern;
?pattern – обратный (вверх по файлу);
n – следующее совпадение образца поиска;
N – предыдущее совпадение;
Выход из режима отслеживания Ctrl+C ;
Полный список всех остальных клавиш и режимов вы можете поглядеть самостоятельно – нажав h – помощь (очень советую нажать).

Теперь давайте посмотрим какие ключи можно передать less .

+F – cразу запустить less в режиме считывания хвоста:

-I ? игнорировать регистр при поиске;
-N ? отображать номера строк;
-S ? усекать длинные строки;

Давайте подытожим – для просмотра логов в Linux удобно пользоваться утилитами tail и less . Первая отлично подходит для быстрого просмотра концовок лог-файлов или для отслеживания изменений сразу в нескольких файлах. Вторая более функциональна и лучше приспособлена для вдумчивого анализа.

Источник

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