Где искать файл конфигурации logrotate из /var/log/mail.log
Я хотел бы изменить суффикс mail.log
повернутые файлы, чтобы включить дату, такую как
/var/log/mail.log.20180920
Я прочитал из этого вопроса, что /etc/cron.weekly/sysklogd
должен быть изменен, но у меня нет такого файла. Я хотел бы переписать значения по умолчанию, однако, это упоминается в этом посте, чтобы написать новый конфиг для этого. Итак, я обнаружил, что, поскольку этот файл журнала создан sy slog, он указан в /etc/logrotate.d/rsyslog
, поэтому я изменил этот файл на следующий, чтобы включить суффикс даты:
/var/log/syslog
{
rotate 400
daily
missingok
notifempty
delaycompress
compress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 400
hourly
dateext
dateformat .%Y%m%d
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
Я также удаляю записи для rsyslog и mail.log из /var/lib/logrotate/status для принудительного поворота журнала на сегодня, затем запускаю:logrotate /etc/logrotate.conf --debug
, но в результате я получаю:
rotating pattern:
/var/log/mail.log
hourly (400 rotations)
empty log files are not rotated, old logs are removed
switching euid to 0 and egid to 104
considering log /var/log/mail.log
log does not need rotating
так что я делаю logrotate -f /etc/logrotate.conf
чтобы заставить его вращать журнал, записи в /var/lib/logrotate/status
обновляется. Файл /var/log/maill.log
генерируется, но я ожидаю увидеть mail.log.20181020
файл, почему он не генерирует это?
Спасибо
2 ответа
От man logrotate
:, близко к концу
FILES
/var/lib/logrotate/status Default state file.
/etc/logrotate.conf Configuration options.
В /etc/logrotate.conf
Вы можете установить следующие директивы:
dateext
Archive old versions of log files adding a date extension like YYYYMMDD instead of simply adding a number.
The extension may be configured using the dateformat and dateyesterday options.
dateformat format_string
Specify the extension for dateext using the notation similar to strftime(3) function. Only %Y %m %d %H %M
%S %V and %s specifiers are allowed. The default value is -%Y%m%d except hourly, which uses -%Y%m%d%H as
default value. Note that also the character separating log name from the extension is part of the datefor‐
mat string. The system clock must be set past Sep 9th 2001 for %s to work correctly. Note that the date‐
stamps generated by this format must be lexically sortable (i.e., first the year, then the month then the
day. e.g., 2001/12/01 is ok, but 01/12/2001 is not, since 01/11/2002 would sort lower while it is later).
This is because when using the rotate option, logrotate sorts all rotated filenames to find out which log‐
files are older and should be removed.
dateyesterday
Use yesterday's instead of today's date to create the dateext extension, so that the rotated log file has a
date in its name that is the same as the timestamps within it.
Дополнительную информацию можно найти здесь или с man logrotate
,