Команда tail
— один из самых полезных инструментов для анализа конца файлов в Linux. Она особенно полезна для мониторинга логов, просмотра последних записей в больших файлах и отслеживания изменений в реальном времени.
Основное использование
▸ Вывод последних 10 строк файла (по умолчанию)
tail файл.txt
▸ Вывод последних N строк (-n
или --lines
)
tail -n 5 файл.txt # Последние 5 строк
tail -5 файл.txt # Короткая запись
▸ Вывод последних N байт (-c
или --bytes
)
tail -c 100 файл.log # Последние 100 байт
▸ Просмотр нескольких файлов
tail файл1.txt файл2.txt
Вывод включает заголовки с именами файлов.
Полезные опции
Опция | Описание | Пример |
---|---|---|
-n <N> | Последние N строк | tail -n 20 файл.log |
-c <N> | Последние N байт | tail -c 500 data.bin |
-q | Не показывать имена файлов | tail -q файл1 файл2 |
-v | Всегда показывать имена файлов | tail -v *.log |
-f | Следить за изменениями (режим реального времени) | tail -f /var/log/syslog |
-F | Как -f , но переоткрывает файл после удаления/ротации | tail -F /var/log/nginx/access.log |
Практические примеры
▸ Мониторинг логов в реальном времени
tail -f /var/log/syslog
(Для выхода: Ctrl+C)
▸ Просмотр последних изменений в лог-файле (с отображением новых строк)
tail -f -n 0 /var/log/nginx/access.log
(Выводит только новые записи, а не старые)
▸ Отслеживание нескольких файлов
tail -f /var/log/nginx/access.log /var/log/nginx/error.log
▸ Постраничный просмотр конца файла (с less
)
tail -n 100 файл.log | less
▸ Комбинация с grep
(поиск в последних записях)
tail -n 100 /var/log/auth.log | grep "Failed password"
▸ Просмотр последних измененных файлов
ls -lt | tail -n 5
(Показывает 5 самых старых файлов в текущей директории)
Разница между tail
и head
Команда | Вывод | Основное применение |
---|---|---|
head | Начало файла | Просмотр заголовков, структуры данных |
tail | Конец файла | Мониторинг логов, последних изменений |
Особые сценарии
▸ tail -F
vs `tail -f
-f
— следит за одним файлом, но если его переименуют или удалят, слежение прервется.-F
— переоткрывает файл при ротации (удобно для логов, которые перезаписываются).
▸ Использование с ssh
(удаленный мониторинг)
ssh user@server "tail -f /var/log/nginx/access.log"
▸ Пропуск первых N строк (комбинация с sed
)
tail -n +11 файл.txt # Пропустить первые 10 строк
(Альтернатива: sed '1,10d' файл.txt
)
Ограничения
- Не подходит для бинарных файлов (лучше
hexdump
илиxxd
). - В очень больших файлах может работать медленнее, чем специализированные утилиты (
less +G
).
Добавить комментарий