Как вывести логи в операционных системах «Альт»?
При обращении в техническую поддержку необходимо предоставить специалистам как можно больше информации о возникшей проблеме. Это могут быть скриншоты, скринкасты (съемка экрана), подробное описание действий пользователя. Но самый полный и информативный материал для технической поддержки — это логи, файлы с информацией о работе системы за определенный период.
В этой статье мы расскажем, как создать в операционных системах «Альт» файл логов за разные периоды с дополнительными параметрами.
Утилита journalctl
Для формирования логов используется утилита journalctl. Она не имеет графической оболочки и управляется через консоль.
Список основных команд с кратким описанием приведен в конце статьи. Ознакомиться с подробным руководством можно по ссылке.
Для выполнения большинства команд права суперпользователя не нужны.
Команда journalctl и запись в файл
Если ввести команду journalctl без дополнительных параметров, на экран будут выведены все логи с момента установки системы. Их можно листать по одной строке клавишами вниз и вверх, вниз нажатием Enter или поэкранно, кнопками PgUp — PgDn.
Чтобы прервать работу утилиты и вернуться к вводу команд, нажмите «q».
Чтобы сформировать файл для обращения в техническую поддержку, нужно ввести команду journalctl затем ключи и параметры, о которых мы расскажем далее, затем знак «>», пробел и полный путь к файлу /home/$USER/mylog.log.
journalctl > /home/$USER/mylog.log
Переменная $USER обозначает имя текущего пользователя, работающего в системе. В таком виде выражение будет работать только без прав суперпользователя.
Если вы вошли с правами суперпользователя, в пути к файлу вместо переменной $USER нужно прямо указать имя пользователя.
Файл будет создан при запуске команды.
Ключи и параметры при выводе на экран и записи в файл не отличаются. Если нужно записать результаты в файл — в конце любой команды нужно добавить > /home/$USER/mylog.log.
Фильтрация по времени: логи за одну сессию
Если системой уже пользуются хотя бы несколько дней, а тем более месяцами и годами, записей будет очень много и разобраться в них будет затруднительно.
Поэтому логи можно отфильтровать по времени и другим параметрам. Для фильтрации используются ключи.
Большинство ключей можно вводить не полностью, достаточно первой буквы.
Чтобы посмотреть логи за текущий сеанс, с момента последнего запуска системы, после команды journalctl добавьте пробел и ключ --boot (загрузка) или -b.
journalctl —boot
или
journalctl -b
Если произошел крах системы или по другим причинам нужна информация по предыдущей сессии, введите ключ -b и аргумент -1. Ввод двойки выдаст логи сеанса за два до текущего, и так далее.
Аргументы можно также вводить, не отделяя от ключа: -b1, -b2.
journalctl -b -1
journalctl -b -2
journalctl -b1
journalctl -b2
Этот ключ удобно использовать, когда известно, в какую сессию произошла ошибка.
Фильтрация по дате и времени
Если нужно получить данные за определенный период времени, независимо от начала и окончания сессий, используются ключи --since — начало временного интервала (от) и --until — окончание интервала (до).
Дата и время задаются в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС и пишутся в кавычках.
Например, запросим логи с 15:00 20 ноября 2025 года по 17:30 10 декабря 2025 года и запишем эти данные в файл mylog2.log.
journalctl --since "2025-11-20 15:00" --until " 2025-12-10 17:30" > /home/$USER/mylog2.log
Если в выражении оставить только начало интервала, отфильтруются логи от указанного времени по настоящий момент.
journalctl --since "2025-11-20 15:00"
Для обозначения начала и конца интервала можно использовать слова:
«yesterday» (вчера), «today» (сегодня), «now» (сейчас).
Например, просмотреть логи с полуночи вчерашнего дня до настоящего момента:
journalctl --since yesterday --until now
Доступно получение информации за определенное количество часов и минут от настоящего момента.
Например, начало интервала — 10 часов назад, окончание — 5 минут назад:
journalctl --since "10 hours ago" --until "5 minute ago"
Подобные выражения пишутся в кавычках.
Если вы планируете воспроизвести действия, приводящие к ошибке, можно ввести команду journalctl -f. Утилита покажет самые последние записи журнала и продолжит выводить на экран новые записи в режиме реального времени.
В этом случае ввод «q» не действует.
Чтобы прервать работу утилиты, введите «Ctrl Z» или «Ctrl C».
Если ввести команду
journalctl -f > /home/$USER/mylog3.log,
логи будут в реальном времени записываться в файл. При выполнении любых действий созданный файл будет увеличиваться.
Чтобы завершить процесс, нажмите «Ctrl Z» или «Ctrl C».
Фильтрация событий по важности
Даже после фильтрации по времени, записей всё еще очень много. Поэтому может быть целесообразно отфильтровать их по важности.
Система записывает события с различными уровнями важности:
0: emergency (неработоспособность системы);
1: alerts (предупреждения, требующие немедленного вмешательства);
2: critical (критическое состояние);
3: errors (ошибки);
4: warning (предупреждения);
5: notice (уведомления);
6: info (информационные сообщения);
7: debug (отладочные сообщения).
Для указания уровня важности используется ключ -p.
Например если ввести команду
journalctl -p 2,
будут показаны сообщения с уровнями 2, 1 и 0.
В журнале содержатся тысячи записей, сформированных за время работы системы. Но с высоким уровнем важности их может быть всего несколько десятков. Эта команда облегчает работу при поиске критических ошибок.
В следующих публикациях мы расскажем, как вывести логи отдельного процесса, службы и пользователя, как получить расшифровку ошибок, а также о других возможностях утилиты.