Я настраиваю logrotate
и хотел бы чередовать некоторые журналы еженедельно, желательно по понедельникам, и изменить их имена на example-%year%.w%weeknumber%
, где %weeknumber%
- номер недели в данном году.
Logrotate с моей конфигурацией будет запускаться ежедневно, добавляя файл, похожий на logrotate.cron в /etc/cron.daily/
. Моя конфигурация logrotate выглядит следующим образом:
rotate 12
dateext
nocompress
/var/logs/example* {
weekly
dateformat .%Y-w%W
}
%W
в конфигурации основан на формате strftime . Однако выполнение теста logrotate -df /etc/logrotate.d/myconf.conf
приводит к следующему выводу:
(...)
considering log /var/logs/example
Creating new state
Now: 2020-04-23 00:18
Last rotated at 2020-04-23 00:00
log needs rotating
rotating log /var/logs/example, log->rotateCount is 12
Converted ' .%Y-w%W' -> '.%Y-w%%W'
dateext suffix '.2020-w%W'
glob pattern '.[0-9][0-9][0-9][0-9]-w%W'
glob finding old rotated logs failed
renaming /var/logs/example to /var/logs/example.2020-w%W
(...)
Это означает, что вместо номера недели я бы получил буквально %W
на его месте. То же самое происходит с %U
при установке вместо %W
.
Я использую logrotate 3.11.0, поскольку он является самым новым, доступным через zypper
на машине, которую я хочу настроить.
Как заставить logrotate
использовать фактический номер недели при переименовании файлов журнала?