로그회전 회전이 작동하지 않습니다

로그회전 회전이 작동하지 않습니다

/var/log에 2017년 4월까지 거슬러 올라가는 메시지 파일이 많이 있습니다(파일이 많기 때문에 ls의 전체 출력을 게시하지 않았습니다). message.2.gz에서 메시지로 보관된 메시지입니다. 250.gz:

-rw------- 1 root root 231K Jul 28 06:22 messages.13.gz
-rw------- 1 root root 238K Jul 28 16:06 messages.12.gz
-rw------- 1 root root 253K Jul 29 01:04 messages.11.gz
-rw------- 1 root root 238K Jul 29 10:43 messages.10.gz
-rw------- 1 root root 247K Jul 29 20:40 messages.9.gz
-rw------- 1 root root 246K Aug  1 07:19 messages.7.gz
-rw------- 1 root root 253K Aug  1 16:34 messages.6.gz
-rw------- 1 root root 246K Aug  2 02:36 messages.5.gz
-rw------- 1 root root 239K Aug  2 12:16 messages.4.gz
-rw------- 1 root root 246K Aug  2 22:14 messages.3.gz
-rw------- 1 root root 237K Aug  3 07:51 messages.2.gz
-rw------- 1 root root 1.2M Aug  3 10:20 messages.1
-rw------- 1 root root 129K Aug  3 10:30 messages

/etc/logrotate.conf의 내 구성에 따르면:

# see "man logrotate" for details
# rotate log files weekly
daily

# keep 4 weeks worth of backlogs
rotate 7

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    minsize 1M
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    minsize 1M
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

전 세계적으로 일주일 분량의 로그만 보관해야 합니다. 또한 추가 문제 해결을 위해 /etc/logrotate.d/syslog를 일부 변경했습니다.

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
    daily
    missingok
    rotate 7
    compress
    delaycompress

    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

디버그에서 실행하면 다음이 표시됩니다.

[root@foo log]# logrotate -d /etc/logrotate.d/syslog
reading config file /etc/logrotate.d/syslog
reading config info for /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron

Handling 1 logs

rotating pattern: /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron  after 1 days (7 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/messages
  log does not need rotating
considering log /var/log/secure
  log does not need rotating
considering log /var/log/maillog
  log does not need rotating
considering log /var/log/spooler
  log does not need rotating
considering log /var/log/boot.log
  log does not need rotating
considering log /var/log/cron
  log does not need rotating
not running postrotate script, since no logs were rotated

logrotate가 이 정보를 기반으로 오래된 로그 파일을 삭제하지 않는 이유를 누군가 말해 줄 수 있습니까? 수동으로 실행하면 구성에서 파일을 삭제해야 한다고 확신하지만 그렇지 않은 것 같습니다...

업데이트: /etc/logrotate.d/syslog의 maxage를 7로 설정했습니다. 흥미롭게도 message.8.gz는 삭제되지만 아무것도 삭제되지 않습니다. 왜 그럴까요?

관련 정보