Skip to content

Instantly share code, notes, and snippets.

@jigi-33
Created June 23, 2021 17:04
Show Gist options
  • Save jigi-33/7e736013dc68530cec499c36c2ec6a81 to your computer and use it in GitHub Desktop.
Save jigi-33/7e736013dc68530cec499c36c2ec6a81 to your computer and use it in GitHub Desktop.
использование утилиты Tail

Утилита Tail

Команда tail позволяет выводить заданное количество строк с конца файла, а также выводить новые строки в интерактивном режиме.

Синтаксис и опции:

$ tail options filespec

По умолчанию утилита выводит десять последних строк из файла, но ее поведение можно настроить с помощью опций:

  • -c - выводить указанное количество байт с конца файла;
  • -f - обновлять информацию по мере появления новых строк в файле;
  • -n - выводить указанное количество строк из конца файла;
  • --pid - используется с опцией -f, позволяет завершить работу утилиты, когда завершится указанный процесс;
  • -q - не выводить имена файлов;
  • --retry - повторять попытки открыть файл, если он недоступен;
  • -v - выводить подробную информацию о файле.

В качестве значения параметра -c можно использовать число с приставкой b, kB, K, MB, M, GB, G T, P, E, Z, Y. Еще есть одно замечание по поводу имен файлов. По умолчанию утилита не отслеживает изменение имен, но вы можете указать что нужно отслеживать файл по дескриптору, подробнее в примерах.

ИСПОЛЬЗОВАНИЕ

Рассмотрим приемы работы с утилитой. Самый простой пример - выводим последние десять строк файла:

tail /var/log/syslog

Если недостаточно 10 строк и нужно намного больше, то можно увеличить этот параметр с помощью опции -n:

tail -n 100 /var/log/syslog

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

tail -f /var/log/syslog

Можно открыть несколько файлов одновременно, просто перечислив их в параметрах:

tail /var/log/syslog /var/log/Xorg.0.log

С помощью опции -s можно задать частоту обновления файла. По умолчанию данные обновляются раз в секунду, но вы можете настроить, например, обновление раз в 5 секунд:

tail -f -s 5 /var/log/syslog

При открытии нескольких файлов будет выводиться имя файла перед участком кода. Если нужно убрать этот заголовок, добавляем опцию -q:

tail -q var/log/syslog /var/log/Xorg.0.log

Если интересует не число строк, а именно число байт, то вы можете их указать с помощью опции -c:

tail -c 500 /var/log/syslog

Для удобства можно выбирать не все строки, а отфильтровать только интересующие:

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment