임베디드 Linux 장치에서 재부팅 시 /var/log를 변경하지 않고 유지하는 방법

임베디드 Linux 장치에서 재부팅 시 /var/log를 변경하지 않고 유지하는 방법

상상하다
저는 임베디드 Linux 시스템을 사용하고 있습니다. 평소와 같이 /var/log/이 디렉토리는 모든 로그가 저장되는 디렉토리입니다. /safepath이미지 생성 중에 생성되고 영구 메모리에 위치하는 라는 디렉터리가 있습니다 . 즉, 내가 넣은 모든 내용은 /safepath다시 시작 세션에서도 유지됩니다.

재부팅할 때마다 로그인 정보가 /var/log/손실되지 않고 재부팅 후에도 유지되기를 원합니다. 그래서 저는 이 흥미로운 토론에서 읽은 내용을 하나 /var/log/만들고 싶었습니다./persistsmount --bind /var/log /safepath여기

질문:
하지만 이렇게 해도 계속 손해를 보게 됩니다 /var/log/. 맞나요? /var/log/다시 시작 세션에서 지속성을 강제하는 방법은 무엇입니까 ?

답변1

질문이 1년 4개월 전에 게시되었으므로 여전히 해결책을 찾고 있는지 확실하지 않습니다. 어쨌든 이것은 매우 간단한 해결책입니다.

구성 파일 /etc/syslog.conf(또는 /etc/rsyslog.conf) 을 /var/log/messages원하는 경로로 변경합니다.

답변2

가장 간단한 방법은 /var/log를 /safepath/log 또는 이와 유사한 심볼릭 링크로 만드는 것입니다.

답변3

실제로 질문에 대답하지 않습니다. 그러나 대안을 제공하려면... syslog에 규칙을 추가하여 모든 메시지를 서버로 전달하십시오.

*.*    @server.host.name

이렇게 하면 지속할 필요가 없습니다./var/log (내 경험에 따르면 영구 저장소가 있으면 항상 가득 차게 됩니다 /var/log.).

서버의 syslog에서 네트워크 모듈을 활성화해야 합니다. 이를 수행하는 방법은 실행 중인 syslog 소프트웨어에 따라 다릅니다. 방화벽(일반적으로 UDP 포트 514)을 처리해야 할 수도 있습니다.

server.host.name또한 syslog 데몬이 시작될 때 DNS 확인자를 사용할 수 없는 경우 IP 주소를 사용해야 할 수도 있습니다.

이 작업의 한 가지(내 생각에 큰) 이점은 모든 내장 장치를 하나의 서버에 기록할 수 있고 모든 로그를 한 곳에서 사용할 수 있다는 것입니다. 서버의 syslog 소프트웨어에서 일치 규칙을 사용하여 각 서버의 메시징 데이터를 저장해야 합니다. 장치는 소스 장치의 이름을 딴 별도의 파일로 분할됩니다(때때로 설정하기가 까다로울 수 있지만 그만한 가치가 있습니다).

관련 정보