옵션 재정의는 logrotate에서 어떻게 작동합니까?

옵션 재정의는 logrotate에서 어떻게 작동합니까?

매뉴얼에서:

각 구성 파일은 전역 옵션을 설정하고(로컬 정의는 전역 옵션을 재정의하고 이후 정의는 이전 정의를 재정의함) 회전할 로그 파일을 지정할 수 있습니다.

정의를 올바르게 이해하면 /path2/dir1/.log첫 번째 블록에서 설정된 옵션이 끝 블록 설정에 의해 무시됩니다. 그 안에는 많은 디렉토리가 있으며 /path2/, 그것들을 개별적으로 작성하고 싶지 않습니다.

/path1/*/*.log 
/path2/*/*.log 
/path3/*/*.log 
/path4/*/*.log 
/path5/*/*.log
{
    size 100k
    rotate 10
    compress
    dateext
    postrotate
        service rsyslog restart >/dev/null 2>&1 || true
    endscript
 } 
 /path3/dir1/*.log
 {
    size 200k
    rotate 50
    compress
    dateext
    postrotate
        service rsyslog restart >/dev/null 2>&1 || true
    endscript 
 }

나는 테스트를 실행할 때 내 이해를 신뢰하지 않습니다. 이 테스트에서는 이 문제가 dir1첫 번째 옵션 집합에 의해 처리된 다음 두 번째 옵션 집합에 의해 처리되는 것으로 보입니다 .

logrotate -d mylogconf 2>&1 | less

reading config file mylogconf
Allocating hash table for state file, size 15360 B

Handling 3 logs

rotating pattern: /path1/*/*.txt
 after 1 days (360 rotations)
empty log files are not rotated, old logs are removed
No logs found. Rotation not needed.

rotating pattern: /path2/*/*.txt
/path3/*/*.txt
 153600 bytes (40 rotations)
empty log files are not rotated, old logs are removed
No logs found. Rotation not needed.

rotating pattern: /path3/dir1/*.txt
 204800 bytes (50 rotations)
empty log files are not rotated, old logs are removed
No logs found. Rotation not needed.

내 생각이 맞다면 내 conf 파일은 다음과 같아야 한다고 생각합니다.

/path1/*/*.log
/path2/*/*.log
/path3/dir2/*.log
/path3/dir3/*.log
/path3/dir4/*.log
{
    size 100k
    rotate 4
}
/path3/dir1/*.log
{
   size 200k
   rotate 50
}

관련 정보