Table of Contents
📰 journalctl: кратко и по делу#
journalctl — утилита для просмотра, фильтрации и анализа логов в Linux.
Работает с системным журналом systemd, объединяя сообщения ядра, сервисов, приложений и системных событий.
📝 Топ‑20 полезных флагов journalctl#
-e— открыть журнал в конце (последние события).-f— “follow mode”, обновление лога в реальном времени.-r— реверсировать порядок вывода (новые сверху).-n <N>— вывести последние N строк.-k— показать только сообщения ядра (аналогdmesg).-u <unit>— лог конкретного сервиса systemd.--since "YYYY-MM-DD HH:MM:SS"— фильтр по дате начала.--until "YYYY-MM-DD HH:MM:SS"— фильтр по дате окончания.-p <PRIORITY>— фильтр по уровню логов (emerg..debug).--disk-usage— показать размер базы логов.--vacuum-time=7d— удалить логи старше 7 дней.--vacuum-size=500M— ограничить размер базы логов.-o json— вывод в JSON-формате.-o json-pretty— читаемый JSON.-o short— компактный вид логов.-o cat— выводить только сообщение без метаданных.--grep "<regex>"— фильтрация по регулярному выражению.--no-pager— отключить постраничный вывод.-x— отображать дополнительные подсказки от systemd.--list-boots— показать список загрузок системы.
🚀 Айсберг команд journalctl — от базового к гуру#
🟢 Уровень 1 — База (разогрев)#
journalctl
- Показать полный системный журнал
journalctl -e
- Перейти в конец журнала
journalctl -n 50
- Вывести последние 50 строк
journalctl -f
- “tail” режима — следить за логами в реальном времени
journalctl --no-pager
- Выводить всё сразу без постраничного просмотра
🟡 Уровень 2 — Фильтрация по сервисам и датам#
journalctl -u ssh
- Лог только для
ssh
journalctl -u nginx.service -n 30
- Последние 30 строк по
nginx
journalctl --since "2025-09-01" --until "2025-09-04"
- Логи за конкретный период
journalctl --since "2 hours ago"
- Логи за последние 2 часа
journalctl -u docker --since "yesterday"
- Логи по Docker со вчера
🟠 Уровень 3 — Фильтрация по приоритетам#
journalctl -p err
- Только ошибки
journalctl -p warning
- Только предупреждения
journalctl -p info
- Только информационные сообщения
journalctl -p crit
- Критические события
journalctl -p 0..3
- Фильтр по приоритетам (0 = emerg, 3 = err)
🔵 Уровень 4 — Работа с загрузками системы#
journalctl --list-boots
- Список загрузок системы
journalctl -b
- Логи текущей загрузки
journalctl -b -1
- Логи предыдущей загрузки
journalctl -b -2 -p err
- Ошибки позапрошлой загрузки
journalctl -k
- Только сообщения ядра (аналог
dmesg)
🟣 Уровень 5 — Работа с форматами вывода#
journalctl -o short
- Компактный вывод
journalctl -o verbose
- Подробный вывод с полными метаданными
journalctl -o json
- Логи в JSON-формате
journalctl -o json-pretty
- Красивый JSON для чтения
journalctl -o cat
- Только текст сообщений
🔴 Уровень 6 — Управление журналом#
journalctl --disk-usage
- Проверить размер базы логов
sudo journalctl --vacuum-time=7d
- Удалить логи старше 7 дней
sudo journalctl --vacuum-size=500M
- Ограничить размер базы логов
sudo journalctl --rotate
- Принудительно пересоздать текущий лог
sudo systemctl restart systemd-journald
- Перезапуск системного демона логов
🟤 Уровень 7 — Гуру‑режим#
journalctl _PID=1234
- Логи по конкретному процессу
journalctl _UID=1000
- Логи от имени пользователя
journalctl _COMM=sshd
- Логи только по команде
sshd
journalctl --grep "timeout"
- Фильтр по ключевому слову
journalctl -u nginx -p err --since "10 min ago"
- Ошибки Nginx за последние 10 минут
🧩 Бонус — практические сценарии#
Следить за логами nginx:
journalctl -u nginx -f
Просмотреть ошибки systemd:
journalctl -p err -b
Анализировать логи ядра:
journalctl -k -b
Удалить старые логи и освободить место:
sudo journalctl --vacuum-size=500M
Мониторить ошибки всех сервисов в реальном времени:
journalctl -p err -f