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

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

괴짜 물건이에 대한 예가 있습니다 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주기 후에 오래된 로그 파일을 삭제합니다.

답변1

이는 아마도 이 튜토리얼의 한 예에서만 발견된 버그일 것입니다. 다른 모든 예에는 copytruncate이 옵션이 없습니다 create. 반품logrotate 매뉴얼 페이지지적실제로는 무시됩니다:

copytruncate

이전 로그 파일을 이동하고 새 로그 파일을 생성하도록 선택하는 대신 복사본을 생성한 후 원본 로그 파일을 0 크기로 자릅니다. 일부 프로그램에서 로그 파일을 닫으라고 지시할 수 없어 이전 로그 파일에 영원히 계속해서 쓸(추가) 수 있는 경우에 사용할 수 있습니다. 파일 복사와 자르기 사이의 시간 간격은 매우 짧으므로 일부 로깅 데이터가 손실될 수 있습니다. 이 옵션을 사용하면 이전 로그 파일이 그대로 유지되므로 만들기 옵션이 적용되지 않습니다.


예를 들어 maxage여러 회전 기간(일/주/월) 동안 비어 있을 수 있는 로그 파일에 유용하다고 생각합니다. 이전 회전 파일을 사용하는 경우입니다notifempty .

관련 정보