Как я отображаю сообщения журнала от предыдущих начальных загрузок под CentOS 7?

Возможно, что файл составлен полностью непечатаемых или пробельных символов. Можно, вероятно, видеть, что он использует printf '<%q>\n' *.

Необходимо смочь получить inode использование числа ls -il. После этого можно удалить его при помощи чего-то как find . -xdev -maxdepth 1 -inum 1234 -delete. Учитывая его размер, каталог, вероятно, не пуст; можно измениться в него для исследования его с cd "$(find . -xdev -maxdepth 1 -inum 1234)" исследовать содержание на Вашем досуге.

81
23.09.2017, 23:10
2 ответа

tl; dr

В CentOS 7 необходимо включить постоянное хранение сообщений журнала:

# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald

В противном случае сообщения журнала не сохраняются между загрузками.

Подробности

Сохраняет ли journald сообщения журнала от предыдущих загрузок, настраивается через /etc/systemd/journald.conf . Настройка по умолчанию в CentOS 7:

[Journal]
Storage=auto

Где journald.conf страница руководства объясняет auto как:

Одно из «volatile», «persistent», «auto» и «нет». Если "volatile", данные журнала будут храниться только в памяти, то есть ниже иерархии / run / log / journal (которая создается при необходимости). Если "постоянный", данные будут храниться предпочтительно на диске, то есть ниже иерархии / var / log / journal (которая создается при необходимости), с откатом на / run / log / journal (который создается при необходимости) во время ранняя загрузка и если диск недоступен для записи. « auto » похоже на «постоянный», но каталог / var / log / journal не создается при необходимости, , так что его наличие определяет, куда идут данные журнала .

(подчеркните мой)

На странице руководства systemd-journald.service указано, что:

По умолчанию журнал хранит данные журнала в / run / log / journal /. Поскольку / run / является непостоянным, данные журнала теряются при перезагрузке. Чтобы сделать данные постоянными, достаточно создать / var / log / journal /, где systemd-journald будет хранить данные.

По-видимому, значение по умолчанию было изменено в Fedora 19 (на постоянное хранилище), а поскольку CentOS 7 является производным от Fedora 18, по умолчанию он все еще не является постоянным.Постоянство реализуется по умолчанию за пределами journald через / var / log / messages и повернутые версии / var / log / messages-YYYYMMDD , которые записываются rsyslogd (который запускается по умолчанию и получает ввод от journald).

Таким образом, чтобы включить постоянное ведение журнала с помощью journald в RHEL / CentOS 7, необходимо

# mkdir /var/log/journal

, а затем исправить разрешения и перезапустить journald, например через

# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
104
27.01.2020, 19:30
systemctl restart systemd-journald

Вы можете потерять свои журналы: см. https://github.com/systemd/systemd/issues/2236

mkdir /var/log/journal

Есть изменение в v208 :

systemd-journald больше не будет корректировать группу файлов журнала, которую он создает, в группу "systemd-journal". Вместо этого мы полагаемся на то, что каталог журнала будет принадлежать группе "systemd-journal", а его бит setgid установлен, так что уровень файловой системы ядра автоматически принудит, чтобы файлы журнала наследовали это назначение группы.

Фрагмент tmpfiles.d (5), включенный в systemd, будет следить за тем, чтобы бит setgid и группа были правильно установлены в каталоге журнала, если они существуют при каждой загрузке.

Итак, вы должны запустить что-то вроде systemd-tmpfiles --create --prefix / var / log / journal после mkdir / var / log / journal

См. Также :

2
27.01.2020, 19:30

Теги

Похожие вопросы