Logrotate : postrotate에서 출력 파일에 액세스하는 방법 반환 한 오류 수의 전자

Nginx매일 로그를 회전 합니다 (로 dateext). 회전 후 방금 통과 한 날의 파일을 구문 분석하고 Nginx 서버가 반환 한 오류 수의 전자 메일을 컴파일하려고합니다.

의 postrotate / endscript 섹션에서 출력 파일에 어떻게 액세스 할 수 logrotate있습니까?



답변

그것이 당신이 찾고있는 것이라면 사용할 수있는 변수를 알지 못합니다. 그러나 로그를 회전 한 직후에는 회전에 대해 설정 한 구성 등에 따라 파일이 회전 된 이름을 정확하게 알아야합니다 /var/log/somefile.1.

해결하려는 실제 문제를 설명하면 대답하기가 더 쉬울 것입니다.


답변

“sharedscripts”지시문을 사용하지 않는 경우 postrotate 스크립트는 $ 1로 로그 회전을 트리거 한 파일을받습니다. 여러 logrotate 스탠자와 함께 일반 스크립트를 사용하려는 경우 도움이 될 수 있습니다. 즉, 다음과 같은 것이 주어진다 :

/var/log/sample1.log /var/log/sample[23].log {
  ..config...
}

일치하는 파일을 회전해야하는 경우 $ 1을 “/var/log/sample1.log”, “/var/log/sample2.log”또는 “/var/log/sample3.log로 설정하여 스크립트가 호출됩니다. ” 적절한. 그런 다음 “.1″을 추가하여 방금 회전 한 파일을 찾을 수 있습니다.

“sharedscripts”옵션을 사용하면 $ 1을 “/var/log/sample1.log /var/log/sample[23].log”로 설정하여 스크립트를 호출합니다 (특정 스탠자를 식별하는 데 도움이되지만 정확한 파일이 아님).

잘하면 이것은 당신에게 시작의 장소를 제공합니다. 이것은 logrotate> v3.7.5에서만 작동합니다.


답변