매번 파일 이름(.1, .2.gz, .3.gz)을 변경하는 대신 logrotate의 기본값이 아닌 날짜 접미사(access.log.20210909.gz)를 추가하는 이유는 무엇입니까?

매번 파일 이름(.1, .2.gz, .3.gz)을 변경하는 대신 logrotate의 기본값이 아닌 날짜 접미사(access.log.20210909.gz)를 추가하는 이유는 무엇입니까?

간단한 해결책이 "로그 파일 이름에 날짜/시간 접미사 추가(예: access.log.20210909.gz")인 이유아니요 logrotate기본 동작? 이름을 바꾸는 대신모든 로그 파일의 파일 이름회전할 때마다(분명히 더 복잡합니다)?

즉, logrotate이름 바꾸기를 의미하는 솔루션을 사용하는 이유는 무엇입니까?파일당매 시대마다 주어진 파일의 이름만 바꾸면 되는 솔루션이 있는 경우한번만그 인생에서?

여기에는 이유가 있을 텐데 아직 본 적은 없습니다.


logrotate예: Apache의 표준 규칙을 사용해 보겠습니다 .

/var/log/apache2/access.log
/var/log/apache2/access.log.1
/var/log/apache2/access.log.2.gz
/var/log/apache2/access.log.3.gz
...
/var/log/apache2/access.log.100.gz

로그를 원격 컴퓨터에 백업하려면 다음을 수행하십시오.회전할 때마다 파일명이 바뀌기 때문에, 파일이 계속해서 재전송될 위험이 있습니다(백업 소프트웨어에 따라 다름).

또한 이러한 (계속 변경되는) 파일 이름은 날짜에 대해 아무 것도 알려주지 않기 때문에 사람이 보기에 덜 편리합니다.

logorate이 방식을 사용하는 데 단점이 있는지 묻습니다(아직 본 적이 없습니다).

/var/log/apache2/access.log     
/var/log/apache2/access.log.20210908_0100.gz
/var/log/apache2/access.log.20210907_0100.gz
/var/log/apache2/access.log.20210906_0100.gz
...

?

답변1

하루 동안 여러 로그 회전을 수행하려는 경우가 아니라면 이에 대한 단점은 없습니다. 이 경우 패턴에 시간을 추가해야 합니다.

또한 일일 회전이 있지만 파일이 너무 큰 경우를 상상해 보세요. 이러한 회전에서는 오류가 발생합니다.

답변2

어떤 날짜를 사용해야 하는지 일관된 방식으로 정의해야 합니다. 모든 날짜가 모든 상황에 적합한 것은 아닙니다. 다음은 시작해야 할 몇 가지 사항입니다.

  • 생산 일
  • 처음 쓴 날짜
  • 주기 날짜
  • 마지막 로그 항목 날짜(예: 마지막 수정 날짜)

이러한 날짜는 하루에 최대 하나의 로그 파일을 가정합니다. 이것이 허용된다면 로그 파일에 날짜 접미사를 사용하지 말아야 할 특별한 이유가 없습니다.

관련 정보