애플리케이션에는 대량의 로그 출력이 생성되는 로그 디렉터리가 있습니다. 로그 디렉터리의 파일 구조는 다음과 같습니다.
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
, 나는 그렇게 생각하지 않으며 그것을 알아내려고 시간을 낭비하지 않을 것입니다.