크기 매개변수가 logrotate에 정의된 경우 ifempty 및 notifempty는 어떻게 작동합니까?

크기 매개변수가 logrotate에 정의된 경우 ifempty 및 notifempty는 어떻게 작동합니까?

다음과 같은 logrotate 명령이 있다고 가정해 보겠습니다.

/a/b/file.log{
size 5M 
ifempty
}

이제 logrotate는 크기가 5MB보다 커야 한다는 조건에서 작동하며, 그런 다음 logrotate가 파일 처리를 시작합니다. 하지만 이 경우 ifempty는 어떻게 작동할까요? 이 경우 우선순위는 어떻게 되나요? 그렇다면 알림이 비어 있는 경우는 어떻습니까?

답변1

이 설정에서는:

  • size 5Mlogrotate로그 파일이 5MB보다 큰 경우에만 회전하도록 지시합니다 .
  • ifempty로그 파일이 비어 있는 경우에도 표시됩니다 logrotate(기본적으로 활성화됨).

이러한 지시어는 충돌할 수 있습니다. 첫 번째 지시어는 0바이트 파일을 제외하지만 두 번째 지시어는 0바이트 파일을 포함합니다.

현실은 이것이 ifempty파일 선택에 명확한 영향을 미치지 않는다는 것입니다. 반면에 중요한 "비어 있음" 설정은 notifempty로그 파일이 비어 있는 경우 모든 경우에 회전을 비활성화합니다. 전역적으로 설정된 경우 특정 구성에 대한 기본 동작을 복원할 수 ifempty있도록 존재합니다 .notifempty

이에 대해 생각하는 또 다른 방법은 ifempty파일 notifempty선택 없이 다른 모든 조건이 적용된 후 빈 로그 파일이 회전된 것으로 간주될 때만 발생하는 일을 결정하는 것입니다. 설정된 경우 ifempty(역시 이것이 기본값임), notifempty설정된 경우 빈 로그 파일이 회전되고, 그렇지 않은 경우에는 설정이 해제됩니다.

구성에 따라 로그 파일은 5MB보다 큰 경우에만 순환됩니다.

관련 정보