복잡한 로그 디렉터리에 logrorate 사용

복잡한 로그 디렉터리에 logrorate 사용

애플리케이션에는 대량의 로그 출력이 생성되는 로그 디렉터리가 있습니다. 로그 디렉터리의 파일 구조는 다음과 같습니다.

localhost:/var/log/myapp # ls

appClient22334.a    appClient22336.a    appClient22338.a
appClient22334.b    appClient22336.b    appClient22338.b    
appClient22334.c    appClient22336.c    appClient22338.c
appClient22335.a    appClient22337.a    appClient22339.a
appClient22335.b    appClient22337.b    appClient22339.b
appClient22335.c    appClient22337.c    appClient22339.c

애플리케이션은 매일 수백 개의 파일을 생성하며 모두 저장해야 합니다. 숫자가 증가합니다.

대부분의 경우 매일 logrotate를 사용하여 로그 파일을 저장하고 압축하지만 이 경우에는 어떻게 해야 할지 모르겠습니다.

이상적인 솔루션은 다음과 같은 것을 갖는 것입니다.

appClient.20120324.gzip
appClient.20120325.gzip
appClient.20120326.gzip

logrotate를 사용하는 동안(아마도 그것을 사용하는 현명한 방법일까요?) 이 작업이 수행될 수 있거나 특정 bash 스크립트를 작성하는 것이 더 빠르고/쉬울 수 있다면 prerotate여러분 중 누구라도 저를 올바른 방향으로 이끌 수 있습니까 ?

답변1

일을 단순하게 유지하기 위해 어제의 로그 파일을 파일(예: 어제.log)로 연결하고 성공 시 삭제하는 일일 cron 작업을 실행한 다음, logrotate를 실행하여 (재)이름을 지정하고 파일을 압축합니다. 전체 작업을 수행하기 위해 force logrotate를 사용할 수도 있지만 sharedscripts, 나는 그렇게 생각하지 않으며 그것을 알아내려고 시간을 낭비하지 않을 것입니다.

관련 정보