Выбор ответа Senior systemd и журналы обновлено

Логи пропадают после перезагрузки

Вопрос

После каждой перезагрузки journalctl -b -1 пишет, что предыдущих загрузок нет. Что не так?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Нет /var/log/journal, и журнал живёт в памяти в /run. При Storage=auto (по умолчанию) journald пишет на диск, только если есть /var/log/journal, иначе в /run/log/journal, который очищается при перезагрузке.

Варианты ответа

  1. journald хранит логи только 24 часа и удаляет старые
  2. Нет /var/log/journal, и журнал живёт в памяти в /runправильный ответ
  3. Нужно включить rsyslog, journald сам на диск не пишет
  4. Флаг -b -1 работает только с правами root

Разбор

При Storage=auto (по умолчанию) journald пишет на диск, только если есть /var/log/journal, иначе в /run/log/journal, который очищается при перезагрузке. Решение: создать каталог или Storage=persistent в journald.conf и перезапустить journald. rsyslog для этого не нужен. Срок хранения задаётся размерами и MaxRetentionSec, фиксированных 24 часов нет. Без root видно меньше записей, но предыдущие загрузки видны, если журнал постоянный.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.