왜 create와 copytruncate를 함께 사용해야합니까?


40

괴짜 물건 에 대한 예가 logrotate있습니다. copytruncate원본 로그 파일을 복사하고 자릅니다.

그렇다면 왜 우리가 사용해야 create합니까? 원본 로그 파일이 제거되지 않았습니다.

/tmp/output.log {
  size 1k
  copytruncate
  create
  compress
  compresscmd /bin/bzip2
  compressext .bz2
  rotate 4
  maxage 100
}

또 다른 질문은 무엇을 사용하는 것 maxage 100입니까? rotate 4지시어는 4 회전 후 이전 로그 파일을 삭제합니다.


4
예, 그건 말이 안되고man logrotate 심지어 이렇게 말합니다. " copytruncate : [...]이 옵션을 사용하면 이전 로그 파일이 그대로 유지되므로 create 옵션이 적용되지 않습니다."
Ulrich Schwarz

1
maxage 100100 일이 지난 현재 파일이 회전하면 회전 된 파일이 삭제됩니다. 4회전 된 파일 보다 적은 수의 파일이 존재하는 경우에도 마찬가지 입니다.
Lutz Prechelt

답변:


57

그것은 아마도 실수 일 것입니다. 그것은 그 튜토리얼에서 하나의 예제에서만 발견됩니다. 다른 모든 예에는 옵션 이 copytruncate없습니다 create. 또한 logrotate 매뉴얼 페이지실제로 무시 된다고 말합니다 .

copytruncate

사본을 작성한 후 기존 로그 파일을 이동하고 선택적으로 새 로그 파일을 작성하는 대신 원래 로그 파일을 제로 크기로 자릅니다. 일부 프로그램이 로그 파일을 닫으라고 지시 할 수 없어서 이전 로그 파일에 영구적으로 계속 기록 (추가) 될 수있을 때 사용할 수 있습니다. 파일 복사와 잘라 내기 사이에는 시간 분할이 매우 작으므로 일부 로깅 데이터가 손실 될 수 있습니다. 이 옵션을 사용하면 이전 로그 파일이 그대로 유지되므로 create 옵션이 적용되지 않습니다.


에 관해서는 maxage, 예를 들어 몇 번의 회전 기간 (일 / 주 / 월) 동안 비어있을 수있는 로그 파일에 유용 할 수 있다고 생각합니다.을 사용 notifempty하면 빈 로그 파일이 회전하지 않으므로 너무 오래된 회전 파일을 그대로 유지할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.