journalctl — Basics
If you like this project, consider supporting me on Buy Me a Coffee ☕️
journalctl — Quick Reference Guide
journalctl is the command-line tool for querying the systemd journal. This cheatsheet covers everyday usage patterns for quick reference. For full documentation and advanced usage, see the journalctl — Systemd Journal cheatsheet.
📚 Official Docs / Официальная документация: journalctl(1) · journald.conf(5)
Basic Viewing
Quick Access / Быстрый доступ
journalctl # All logs / Все логи
journalctl -xe # Recent errors (extended) / Недавние ошибки (расширенно)
journalctl -f # Follow (tail -f) / Следить в реальном времени
journalctl -n 100 # Last 100 lines / Последние 100 строк
Reverse Order / Обратный порядок
journalctl -r # Newest first / Новые сначала
journalctl -r -n 50 # Last 50, newest first / Последние 50, новые сначала
Boot Logs / Логи загрузки
journalctl -b # Current boot / Текущая загрузка
journalctl -b -1 # Previous boot / Предыдущая загрузка
journalctl -b -2 # Boot before last / Позапрошлая загрузка
journalctl --list-boots # List all boots / Список всех загрузок
Time Filters
Since / Until / С / До
journalctl --since "1 hour ago" # Last hour / Последний час
journalctl --since "2 hours ago" --until "1 hour ago" # Range / Диапазон
journalctl --since today # Since midnight / С полуночи
journalctl --since yesterday # Since yesterday / С вчера
Specific Date/Time / Конкретная дата/время
journalctl --since "2025-02-01" # Since date / С даты
journalctl --since "2025-02-01 09:00:00" # With time / С временем
journalctl --since "2025-02-01" --until "2025-02-05" # Date range / Диапазон дат
Relative Time / Относительное время
journalctl --since "30 min ago" # Last 30 minutes / Последние 30 минут
journalctl --since "1 week ago" # Last week / Последняя неделя
journalctl --since "-1 day" # Alternative syntax / Альтернативный синтаксис
Unit Filters
By Service / По сервису
journalctl -u nginx # Nginx logs / Логи nginx
journalctl -u nginx.service # Same, explicit / То же, явно
journalctl -u nginx -u php-fpm # Multiple units / Несколько юнитов
journalctl -u nginx -f # Follow nginx logs / Следить за nginx
By Unit Pattern / По шаблону юнита
journalctl -u 'docker*' # All docker units / Все docker юниты
journalctl -u 'mysql*' # All mysql units / Все mysql юниты
Combine with Time / Комбинировать со временем
journalctl -u nginx --since "1 hour ago" # Nginx last hour / Nginx за последний час
journalctl -u nginx -f --since "1 hour ago" # Follow from 1 hour / Следить с часа назад
Priority & Field Filters
By Priority / По приоритету
journalctl -p err # Errors and above / Ошибки и выше
journalctl -p warning # Warnings and above / Предупреждения и выше
journalctl -p warning..emerg # Range warning to emergency / От warning до emergency
journalctl -p 0..3 # By number (0=emerg, 7=debug) / По номеру
Priority Levels / Уровни приоритета
0 = emerg — System unusable / Система неработоспособна
1 = alert — Action required / Требуется действие
2 = crit — Critical conditions / Критические условия
3 = err — Error conditions / Условия ошибки
4 = warning — Warning conditions / Предупреждения
5 = notice — Normal but significant / Нормально, но важно
6 = info — Informational / Информационные
7 = debug — Debug messages / Отладочные сообщения
By Field / По полю
journalctl _PID=<PID> # By PID / По PID
journalctl _UID=1000 # By UID / По UID
journalctl _SYSTEMD_UNIT=sshd.service # By unit field / По полю юнита
journalctl _HOSTNAME=<HOST> # By hostname / По имени хоста
journalctl _COMM=nginx # By command name / По имени команды
Combine Filters / Комбинирование фильтров
journalctl -u nginx -p err --since today # Nginx errors today / Ошибки nginx за сегодня
journalctl _UID=1000 -p warning # User warnings / Предупреждения пользователя
Output Formats
Standard Formats / Стандартные форматы
journalctl -o short # Default format / Формат по умолчанию
journalctl -o short-precise # With microseconds / С микросекундами
journalctl -o verbose # All fields / Все поля
journalctl -o json # JSON format / Формат JSON
journalctl -o json-pretty # Pretty JSON / Читаемый JSON
journalctl -o cat # Message only / Только сообщение
Export / Экспорт
journalctl -u nginx > nginx.log # Save to file / Сохранить в файл
journalctl -u nginx -o json > nginx.json # JSON export / JSON экспорт
journalctl --no-pager -u nginx # No pager (for piping) / Без пейджера
Maintenance
Disk Usage / Использование диска
journalctl --disk-usage # Show journal size / Показать размер журнала
Cleanup / Очистка
sudo journalctl --vacuum-size=500M # Keep only 500MB / Оставить только 500MB
sudo journalctl --vacuum-time=7d # Keep only 7 days / Оставить только 7 дней
sudo journalctl --vacuum-files=5 # Keep only 5 files / Оставить только 5 файлов
Persistent Storage / Постоянное хранение
# Enable persistent journal / Включить постоянный журнал
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journald
Configuration / Конфигурация
/etc/systemd/journald.conf
[Journal]
Storage=persistent # Auto/persistent/volatile/none
SystemMaxUse=500M # Max disk usage / Макс. использование диска
SystemMaxFileSize=50M # Max file size / Макс. размер файла
MaxRetentionSec=1week # Max retention / Макс. хранение
Troubleshooting
Debug Service Failures / Отладка сбоёв сервисов
# Check failed units / Проверить проваленные юниты
systemctl list-units --failed
# Get logs for failed service / Получить логи проваленного сервиса
journalctl -u failed-service.service -xe
# Get logs around failure time / Логи около времени сбоя
journalctl -u myapp --since "10 min ago" -n 100
Kernel Messages / Сообщения ядра
journalctl -k # Kernel messages / Сообщения ядра
journalctl -k -b # Kernel since boot / Ядро с загрузки
journalctl -k -p err # Kernel errors / Ошибки ядра
Find Specific Events / Поиск конкретных событий
# SSH login attempts / Попытки входа по SSH
journalctl -u sshd --since today | grep "Accepted"
# Failed logins / Неудачные входы
journalctl -u sshd --since today | grep "Failed"
# Out of memory / Нехватка памяти
journalctl -k | grep -i "oom\|out of memory"
💡 Best Practices / Лучшие практики
- Use
-ufor service logs, notgrepin/var/log. / Используйте-uдля логов сервисов. - Enable persistent journal for post-reboot debugging. / Включите постоянный журнал для отладки после перезагрузки.
- Set up log rotation via
journald.conf. / Настройте ротацию черезjournald.conf. - Use
--sinceand--untilto narrow down issues. / Используйте--sinceи--untilдля сужения поиска.
Documentation Links
- journalctl(1): https://man7.org/linux/man-pages/man1/journalctl.1.html
- journald.conf(5): https://man7.org/linux/man-pages/man5/journald.conf.5.html
- ArchWiki — systemd/Journal: https://wiki.archlinux.org/title/Systemd/Journal