Я не уверен, решит ли приведенное ниже решение вашу проблему, потому что оно кажется слишком простым (с учетом вашего представителя ). Но поехали:
Если у вас есть Storage=auto
в /etc/systemd/journald.conf
(, который используется по умолчанию в большинстве установок, которые я видел ), вам просто нужно создать каталог /var/log/journal
. С этой настройкой systemd-journald
сохраняет журналы в этом каталоге, если он существует, но сохраняет журналы только в памяти, если это не так (и, конечно же, забывает их при завершении работы ). После создания каталога вы должны выполнить systemd-tmpfiles --create --prefix /var/log/journal
и перезапустить systemd-journald
.
Вероятно, вы можете настроить systemd-journald
для использования другого места для файлов журнала, но это выходит за пределы моих (текущих )знаний (Мне никогда не приходилось делать это, и поэтому я не исследовал необходимые шаги ).
Если у вас есть Storage=persistent
в /etc/systemd/journald.conf
, /var/log/journal
должен создаваться автоматически при необходимости.
Для полноты картины Storage=volatile
означает, что данные журнала будут храниться только в памяти (и будут забыты при завершении работы ), а Storage=none
вообще запрещает любое сохранение. Вам придется избегать этих двух, если вы хотите увидеть журналы предыдущих загрузок.
Все эти настройки подробно описаны в man journald.conf
.
Обратите внимание, что описанное выше решение относится к systemd
и, следовательно, подходит для OP, поскольку RHEL 7.2 основан на systemd
.
Если вы настаиваете на создании резервной копии старых журналов загрузки (, хотя вы уже можете просматривать их в стандартной конфигурации ), вы можете просто ввести journalctl -b <N> > demsg.<N>
, например:. journalctl -b 1 > dmesg.1
, чтобы сохранить самый старый записанный журнал загрузки в файл dmesg.1
.
Таким образом, ответ на ваш вопрос (, какова конфигурация, позволяющая сохранить старое ядро, указанное в файлах резервных копий ),:
dmesg
. dmesg
,и позволять ему работать после каждого запуска или перед каждым выключением. К сожалению, это решение не подходит для человека, который потратил вознаграждение :Оно не будет работать с OpenRC, потому что OpenRC не основан на systemd
(, если я правильно понял заявление о вознаграждении ). В OpenRC могут быть и другие способы решения проблемы, но так как я о таком не слышал, то ничем помочь не могу.
Ссылка:
https://gist.github.com/JPvRiel/b7c185833da32631fa6ce65b40836887