Журналы почты в системах 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 делает то, что вы хотите.