dmesg + dmesg 기록 로그를 활성화하는 방법

dmesg + dmesg 기록 로그를 활성화하는 방법

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.

위 솔루션은 systemdRHEL 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

관련 정보