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

Ротация почтовых журналов на сервере Debian

Журналы почты в системах Debian не используют обычные сценарии /etc/logrotate.d для их ротации.

Я хочу заставить мои почтовые журналы обновляться ежедневно (независимо от того, насколько они малы) и сжимать результаты, чтобы нумерация файлов журналов соответствовала нумерации моих других (более загруженных) почтовых серверов. По сути, я хочу получить:

mail.log mail.log.0 mail.log.1.gz mail.log.2.gz ... mail.log.6.gz

Может кто-нибудь сказать мне, как это сделать?

Я предполагаю, что на данный момент у вас есть стандартная установка sysklogd и что ваши файлы журналов чередуются с помощью сценария /etc/cron.weekly/sysklogd по умолчанию.

Я бы посоветовал вам отредактировать скрипт /etc/cron.weekly/sysklogd и изменить:

logs=$(syslogd-listfiles --weekly)

кому:

logs=$(syslogd-listfiles --weekly -s mail\*)

Это предотвратит обработку журналов электронной почты сценариями по умолчанию.

Отредактируйте /etc/logrotate.d/sendmail и добавьте записи для соответствующих файлов. Вероятно, вам нужно что-то вроде:

/var/log/mail.log /var/log/mail.info /var/log/mail.warn /var/log/mail.err {
        rotate 7
        daily
        compress
        delaycompress
        missingok
        create 640 root adm
        sharedscripts
        postrotate
           /etc/init.d/sysklogd reload
        endscript
}

Чтобы проверить вашу конфигурацию, запустите:

logrotate -d /etc/logrotate.conf

И убедитесь, что logrotate делает то, что вы хотите.