복잡한 로깅 디렉토리와 함께 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

prerotatelogrotate를 사용하는 동안 이 작업을 수행할 수 있거나(어쩌면 영리한 사용 방법 일까요?) 특정 bash 스크립트를 작성하는 것이 더 빠르고/쉽다면 여러분 중 누구라도 나를 올바른 방향으로 안내할 수 있습니까 ?

답변1

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

관련 정보