logrotate는 다른 파일 이름을 가진 로그 파일로부터 압축된 아카이브를 생성합니다.

logrotate는 다른 파일 이름을 가진 로그 파일로부터 압축된 아카이브를 생성합니다.

/var/USER/mylogs아래 형식의 일일 로그 파일이 있는 로그 폴더가 있습니다 "DATE-mylogile.log". 날짜 형식은 입니다 "%d-%m-%Y".

따라서 내 폴더에는 다음과 같은 로그 파일이 있습니다.

12-01-2024-mylogfile.log
13-01-2024-mylogfile.log
14.01-2024-mylogfile.log
...

이제 logrotate를 사용하여 로그를 회전하고 싶습니다. 내 테스트 구성은 다음과 같습니다.

/var/USER/mylogs/*.log {
weekly
rotate 4
compress
missingok 
dateext 
dateformat -%d-%m-%Y
}

그러나 logrotate가 실행되면 각 로그 파일에 대해 gz-Archive가 생성됩니다. 예를 들면 다음과 같습니다.

12.01-2024-mylogfile.log-12-03-2024.gz
13.01-2024-mylogfile.log-13-03-2024.gz
14.01-2024-mylogfile.log-14-03-2024.gz

하지만 logrotate에서 해당 주의 모든 개별 로그 파일을 포함하는 gz-Archive를 매주 생성하여 다음과 같이 gz-Archive가 하나만 있도록 하려고 합니다.

mylogfile.log-14-03-2024.gz

그런데 막혔어요. 이게 가능할까요? 어떻게 해야 합니까?

답변1

더 조사한 끝에 게시물을 찾았습니다.서버 장애답변이 제공되는 곳.

따라서 파일 이름에 시간/날짜가 포함된 로그는 회전할 수 없습니다. logrotate는 매번 동일한 로그 파일을 사용하도록 설계되었으며 애플리케이션은 해당 단일 로그 파일에 기록합니다.

링크에서 답변서버 장애우편 엽서:

"이름에 날짜가 포함된 파일을 생성한 경우 logrotate는 답이 아닙니다. 이는 애플리케이션이 항상 동일한 로그 파일(예: /var/log/app/output.log.log)에 기록한다는 아이디어를 기반으로 합니다. 그런 다음 logrotate가 파일 이름을 다시 지정하거나 압축하고 응용 프로그램에 원래 대상 파일을 다시 열도록 지시합니다."

관련 정보