journalctl — это инструмент для просмотра и анализа логов, собираемых демоном systemd-journald. Он объединяет сообщения от ядра, служб, приложений и самого systemd в единый журнал. Благодаря этому администраторы могут эффективно отслеживать и устранять проблемы в системе.
Синтаксис
journalctl [опции] [фильтры]
Команда без параметров выведет все доступные журналы. Для просмотра логов, относящихся к определённой загрузке, времени, сервису или приоритету, используются соответствующие опции.
Основные опции
| Опция | Описание |
|---|---|
| -b | показать логи текущей загрузки |
| -b -1 | предыдущая загрузка, -b -2 — две загрузки назад и т.д. |
| —list-boots | список всех загрузок с их идентификаторами |
| -u <unit> | логи конкретного сервиса (например, nginx.service) |
| -p <priority> | фильтрация по уровню приоритета (0–7 или emerg–debug) |
| —since и —until | фильтрация по времени (например, —since «2025-05-25 14:00» или —since «2025-05-25 14:00» —until «2025-05-25 17:00») |
| -f | режим реального времени (аналог tail -f) |
| -n <N> | показать последние N записей (по умолчанию 10) |
| -r | Обратный порядок (новые записи сверху) |
| -k | только сообщения ядра |
| -o <format> | формат вывода (short, json, cat, verbose и др.) |
| -e | перейти к последним записям |
| -x | добавить пояснения к ошибкам, если доступны |
| —disk-usage | показать объём, занимаемый логами |
| —vacuum-time=7d | удалить логи старше 7 дней |
| —vacuum-size=100M | ограничить размер логов 100 МБ |
Примеры —since и —until
--since и --until — одни из самых удобных опций в journalctl, особенно когда нужно вывести логи за конкретный промежуток времени.
Показать логи за сегодня:journalctl --since today
Логи за последние 2 часа:journalctl --since "2 hours ago"
Логи за конкретную дату:journalctl --since "2025-05-25" --until "2025-05-26"
Логи за конкретное время:journalctl --since "2025-05-26 14:00" --until "2025-05-26 16:30"
Логи nginx за последний час:journalctl -u nginx.service --since "1 hour ago"
Логи ядра за вчерашний день:journalctl -k --since "yesterday" --until "today"