Как смотреть логи в Linux: tail -n 100 -f для отслеживания ошибок в реальном времени
Почему нельзя открывать большие логи редактором nano или cat
Файлы системных журналов (например, access.log, error.log веб-сервера или журналы приложений) могут весить десятки гигабайт. Если начинающий администратор попытается открыть такой гигантский файл стандартным текстовым редактором nano или вывести его целиком командой cat, оперативная память сервера мгновенно переполнится, а сессия намертво зависнет. Утилита tail (Хвост) читает только самый конец файла прямо с диска за миллисекунды.
Главные параметры утилиты tail
| Флаг | Что делает | Пример использования |
|---|---|---|
-n 100 | Выводит ровно последние 100 строк файла | tail -n 100 /var/log/syslog |
-f (Follow) | Живой поток: выводит новые строки на экран по мере их появления | tail -f /var/log/nginx/error.log |
-F | Следит за файлом, даже если он был пересоздан (ротирован) | tail -F /var/log/app.log |
Практические примеры отслеживания логов через tail
Сценарий 1: Просмотр последних 100 строк лог-файла
Посмотрим последние 100 записей системного журнала:
tail -n 100 /var/log/syslog
или на RedHat/CentOS:
sudo tail -n 100 /var/log/messagesСценарий 2: Живой мониторинг запросов к сайту в реальном времени (-f)
Запустите непрерывный просмотр входящего веб-трафика:
sudo tail -f /var/log/nginx/access.logТеперь перейдите на свой сайт в браузере и обновите страницу — в окне терминала мгновенно появится новая строка с вашим IP-адресом и кодом ответа (200 OK).
Для выхода из режима слежения нажмите сочетание клавиш: Ctrl + C.
Сценарий 3: Комбинация флагов (100 строк + живой поток)
Вывести последние 100 строк и сразу продолжить показывать новые входящие ошибки:
sudo tail -n 100 -f /var/log/nginx/error.logСценарий 4: Одновременное слежение за несколькими файлами логов
Утилита tail умеет мониторить сразу несколько файлов в одном окне консоли:
sudo tail -f /var/log/nginx/access.log /var/log/nginx/error.logСценарий 5: Фильтрация живого потока через grep
Показываем только строки с ошибками уровня Fatal или 500 в реальном времени:
sudo tail -f /var/log/nginx/error.log | grep --line-buffered -i "error"Типовые ошибки администраторов
- Обычный -f вместо -F при активной ротации логов: Если служба logrotate сожмет текущий лог в полночь,
tail -fперестанет выводить новые события. Флаг с заглавной буквой-Fавтоматически переоткрывает вновь созданный файл. - Забытый флаг --line-buffered при связке tail + grep: Если не указать этот флаг у grep, операционная система будет буферизировать вывод пачками, и вы увидите ошибки с опозданием в несколько минут.
ITSTM развернет современную систему централизованного сбора логов Grafana Loki + Promtail или VictoriaLogs с удобным поиском и алертами в Telegram.
Частые вопросы (FAQ)
Как посмотреть НАЧАЛО файла вместо его конца?
Используйте парную утилиту head: head -n 50 file.log выведет первые 50 строк файла.
Как перемещаться по огромному лог-файлу со стрелками и поиском?
Используйте постраничный просмотрщик less: less /var/log/syslog. Внутри less можно искать слова по нажатию '/' и включить живой поток клавишей Shift + F.
Как прочитать сжатые архивные логи вида access.log.2.gz?
Используйте утилиту zcat или zless: zcat /var/log/nginx/access.log.2.gz | tail -n 100.
Как посмотреть системные логи служб systemd без указания путей к файлам?
Используйте системный журнал journalctl с аналогичным флагом -f: sudo journalctl -u nginx.service -n 100 -f.