RHEL 서버 버전 7.2가 있고 dmesg
이전 세션의 파일이 /var/log
생성되지 않은 것으로 나타났습니다.
우리가 가진 /var/log
전부 는
ls -ltr | grep dmesg
-rw-r--r-- 1 root root 123011 Jan 3 04:03 dmesg
대신 다음과 같습니다.
-rw-r--r-- 1 root root 123011 Jan 3 04:03 dmesg.0
-rw-r--r-- 1 root root 123011 Jan 2 04:03 dmesg.1
-rw-r--r-- 1 root root 123011 Jan 1 04:03 dmesg.2
.
.
.
이전 커널 메시지를 백업 파일에 저장할 수 있는 구성은 무엇입니까?
답변1
(귀하의 담당자를 고려하면) 너무 단순해 보이기 때문에 아래 솔루션이 귀하의 문제를 해결할 수 있을지 확신할 수 없습니다. 하지만 시작해 보겠습니다.
하나가 있는 경우 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
RHEL 7.2가 이를 기반으로 하기 때문에 OP에 관련되어 적용 가능합니다 systemd
.
이전 부팅 로그를 백업해야 하는 경우(표준 구성을 사용하여 이미 볼 수 있음에도 불구하고) 간단히 실행하면 됩니다. journalctl -b <N> > demsg.<N>
예를 들어 journalctl -b 1 > dmesg.1
가장 오래 기록된 부팅 로그를 파일로 저장하면 됩니다 dmesg.1
.
따라서 귀하의 질문에 대한 답변 (이전 커널 메시지를 백업 파일에 저장할 수 있는 구성은 무엇입니까) 예:
dmesg
나는 이러한 파일을 기반으로 이 작업을 수행 하는 구성 설정을 알지 못합니다 .- 물론,
dmesg
파일을 회전하고 시작할 때마다 또는 종료할 때마다 실행되도록 하는 스크립트를 작성할 수 있습니다. - 그러나 위에서 설명한 프로세스를 따르면 더 나은(그리고 더 쉬운) 방법으로 목표를 달성할 수 있습니다.
불행하게도 이 솔루션은 포상금을 지출하는 사람들에게는 적합하지 않습니다. OpenRC가 OpenRC를 기반으로 하지 않기 때문에 systemd
(내 포상금 청구가 올바른 경우) OpenRC에서는 작동하지 않습니다. OpenRC에서 문제를 해결하는 다른 방법이 있을 수 있지만, 들어본 적이 없기 때문에 도움을 드릴 수 없습니다.
인용하다:
https://gist.github.com/JPvRiel/b7c185833da32631fa6ce65b40836887