journalctl
#journalctl
Journald
Начиная с версии v38+ systemd имеет собственную систему регистрации событий, которая по умолчанию включена в дистрибутив openSUSE 12.2+. systemd-journalctl является неотъемлемой частью systemd и не может использоваться отдельно. Журналы данного инструмента хранятся в бинарном виде в /var/log/journal, что исключает возможность просмотра содержимого данных файлов стандартными утилитами обработки текстовых данных. При вызове инструмента без параметров покажет все содержимое журнала аналогичного классической системе лог-файлов syslog ( /var/log/messages )
Подробное описание работы с журналом
-
man systemd-journald
-
man journalctl
Основные сведения
Ключи journalctl
Получить актуальные ключи команды:
- journalctl –help
Чтение всех логов:
- journalctl
Логи с момента запуска системы:
- journalctl -b
Если был крах системы, можно ввести параметр -1 и посмотреть логи с предыдущего запуска системы (-2 логи сеанса за два сеанса до текущего и т.д.) [1]:
- journalctl -b -1
Показывать записи журнала с момента запуска системы с расшифровкой ошибок:
- journalctl -xb
Показать самые последние записи журнала, и продолжать печатать новые записи, при добавлении их в журнал:
- journalctl -f
Вывод лога в текстовый файл
Если вам нужно вывести лог в текстовый файл (например, чтобы сообщить разработчикам об ошибке), используйте конструкцию
- ‘команда’ > ‘путь к текстовому файлу’
Пример:
- journalctl -b > /home/user/debug.log
Фильтрация по дате и времени
Для фильтрации по дате и времени важны два ключа
--since - вывод от такого-то момента времени
--until - вывод до такого-то момента времени
в качестве значений для этих ключей могут использоваться:
Формат YYYY-MM-DD HH:MM:SS
- journalctl –since “2017-05-05 00:01” –until “2017-05-06 01:40”
Слова «yesterday», «today», «tomorrow», «now»:
- journalctl –since “yesterday” –until “2017-05-06 01:40”
Удобочитаемые выражения вида:
-
journalctl –since “10 hours ago”
-
journalctl –since “1 minute ago”
-
journalctl –since “50 minute ago” –until “5 minute ago”
Примеры
Показать все сообщения за последние 20 минут:
- journalctl –since “20 min ago”
Просмотреть все сообщения начиная с 20 июля 2015 года 17:15:
- journalctl –since “2015-07-20 17:15:00”
Просмотреть все сообщения начиная со вчерашнего дня:
- journalctl –since “yesterday”
Просмотреть все сообщения с 9:00 до настоящего времени:
- journalctl –since “09:00” –until “now”
Просмотреть все сообщения с 9:00 до прошлого часа:
- journalctl –since “10:00” –until “1 hour ago”
Фильтрация по другим параметрам
Показывать в реальном времени все записи, независимо от их размера и кодировки:
- journalctl -af
Просмотр сообщений ядра [1]:
- journalctl -k
Все сообщение конкретной утилиты, например, systemd:
- journalctl /usr/lib/systemd/systemd
Все сообщения конкретного процесса:
- journalctl _PID=1
Все сообщения конкретного приложения или службы:
- journalctl -u netcfg
Все сообщения процессов, запущенных от имени конкретного пользователя:
- journalctl _UID=33
Журнал
Недавние события
Просмотр информации о недавних событиях
- $ journalctl -n
По умолчанию на консоль выводится информация о последних 10 событиях. С опцией -n можно указать необходимое число событий:
- $ journalctl -n 20
Анализ этапа загрузки
Для анализа этапа инициализации системы используется утилита systemd-analyze
Для установки делаем от root:
- apt install systemd-analyze
Выявляем самые медленные процессы (от пользователя):
- systemd-analyze blame
Выводим график загрузки процессов в векторный рисунок:
- systemd-analyze plot > file.svg