특정 시작 서비스에 대해 logrotate를 재정의하는 방법

특정 시작 서비스에 대해 logrotate를 재정의하는 방법

디렉터리에 로그 파일을 생성하는 프로젝트 myservice가 있습니다 .upstart/var/log/upstrart/

내 서비스에서 너무 많은 로그를 생성하므로 이 문제를 해결해야 합니다. 그때까지는 시간 대신 크기를 기준으로 로그 파일을 회전해야 합니다. 내 기본 구성 logrotate은 다음과 같습니다.

/var/log/upstart/*.log {
        daily
        missingok
        rotate 7
        compress
        notifempty
        nocreate
}

이것을 무시할 수 있나요 myservice?

내 승리를 작성 하여 폴더 logrotate.conf에 추가하면 기존 구성을 덮어쓸 수 있습니까?/etc/init.d/myservice

답변1

기본적으로 myservicerun 을 사용 하면 구성 파일 과 호환 파일도 upstart있지만 후자는 디렉터리가 아닙니다. 또는 아래에 하위 디렉터리를 갖는 것은 매우 비표준입니다 ./etc/init/myservice.conf/etc/init.d/myservice/etc/init/etc/init.d

즉, 업그레이드로 인해 변경 사항이 덮어쓰여질 수 있으므로 배포판에서 파일을 변경하는 것은 매우 나쁜 생각입니다. 모든 배포판에는 이를 방지하는 메커니즘이 있지만 작동하는지 확신할 수는 없습니다. 그러니 /etc/logrotate.d/upstart당신이 인용한 연의 출처가 무엇이든 함부로 다루지 마십시오 . 이는 로그 파일을 에 저장할 수 없음을 의미합니다 /var/log/upstart.

가장 쉬운 해결 방법은 디렉터리를 만들고 /var/log/myservice/파일을 편집하여 /etc/init/myservice.conf서비스에 로그인하도록 지시한 다음 /var/log/myservice/myservice.log(가장 까다로운 부분입니다. 아래 참조) /etc/logrotate.d/myservice원하는 섹션이 포함된 파일을 만드는 것입니다.

서버 장애데몬에게 다른 곳에 기록하도록 지시하는 방법에 대한 몇 가지 팁이 있습니다(일반적으로 로깅을 시작에서 syslog로 이동한 다음 syslog에 기록할 위치를 알려줌). 나는 귀하의 서비스에 대해 아무것도 모르기 때문에 더 이상 말씀드릴 수 없습니다.

관련 정보