LinuxNotes
← Все статьи

Journalctl: как найти причину сбоя в Linux

Фильтруем журнал по загрузке, времени и службе, сохраняем полезный фрагмент для диагностики.

Linux2 мин чтения

Что понадобится

Инструкция подходит для Arch, CachyOS и других систем с systemd-journald. Часть системных записей доступна только через sudo. Команды просмотра не изменяют настройки служб.

Журнал помогает восстановить последовательность событий. Одно сообщение с уровнем error ещё не объясняет сбой: смотрите соседние записи и время возникновения проблемы.

Выберите загрузку

journalctl --list-boots
journalctl -b -p warning --no-pager
journalctl -b -1 -p err --no-pager

Первая команда перечисляет сохранённые загрузки. Вторая показывает предупреждения и более серьёзные события текущей загрузки. Третья обращается к предыдущей загрузке; она сработает, только если её журнал сохранился. Если список содержит лишь текущую сессию, прошлые записи могли храниться в оперативной памяти или быть удалены политикой хранения.

Ограничьте время и службу

Для установленного SSH-сервера Arch используйте имя sshd.service:

journalctl -u sshd.service --since '30 minutes ago' --no-pager
journalctl -u sshd.service -n 50 --no-pager
journalctl -u sshd.service -f

Флаг -u ограничивает выборку службой, -n задаёт количество последних строк, -f включает наблюдение. Для выхода нажмите Ctrl+C. Для другой службы подставьте её точное имя из systemctl list-units --type=service.

Посмотрите сообщения ядра

journalctl -k -b --no-pager

Так ищут события драйверов, дисков и оборудования текущей загрузки. Сопоставьте время с отключением устройства или зависанием. Сообщение о сбросе USB не обязательно означает поломку: проверьте кабель, питание и повторяемость.

Сохраните диагностический фрагмент

journalctl -b --since '15 minutes ago' -o short-iso --no-pager > journal-fragment.txt

Формат short-iso сохраняет удобные временные отметки. Перед отправкой файла проверьте имена пользователей, адреса и другие личные данные. Не очищайте журнал до завершения диагностики.

Проверьте занимаемое место

journalctl --disk-usage

Команда сообщает объём файлов журнала. Она ничего не удаляет. Если места мало, сначала определите причину потока сообщений, затем настройте срок или объём хранения. Удалённый журнал не получится использовать для анализа предыдущих сбоев.

Продолжение: управление службами systemd.

Документация: journalctl.

Читайте дальше