Назад | Перейти на главную страницу

Logrotate чередуется ежедневно, но должен чередоваться еженедельно

По какой-то причине logrotate меняет журналы ежедневно, а не еженедельно, хотя все файлы конфигурации для logrotate кажутся еженедельными. Любые идеи?

/etc/cron.daily/logrotate

#!/bin/sh

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

/etc/logrotate.conf

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

# keep 4 weeks worth of backlogs
rotate 4

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

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

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

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}


# system-specific logs may be configured here

/etc/logrotate.d/apache

/var/log/apache2/*.log {
        weekly
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
                        /etc/init.d/apache2 reload > /dev/null
                fi
        endscript
}

Обратите внимание на эту строку в /etc/logrorate.conf:

include /etc/logrotate.d

Возможно, в этом каталоге лежат устаревшие файлы или файлы резервных копий, которые включаются и задают ежедневную ротацию?

В качестве обходного пути, и если вы все еще не можете понять это, и если вы когда-либо хотите, чтобы ваши файлы менялись еженедельно, вы можете изменить частоту, с которой logrotate выполняется через cron, тем самым изменяя точность ротации логов с ежедневной на еженедельную.

Вам нужно принудительно выполнить поворот вручную, чтобы он перезагрузил конфигурацию:

sudo logrotate -f /etc/logrotate.conf

Также ... не заставляйте его использовать свой crontab, оставьте его без флагов:

#logrotate
0  0    * * *   /usr/sbin/logrotate /etc/logrotate.conf