У меня есть конфигурация logrotate, которая выглядит так:

/var/log/update-job/*.log {
    daily
    rotate 7
    compress
    delaycompress
    size 0k
    missingok
    copytruncate
    notifempty
    dateext
    dateformat %Y%m%d.
    extension log
    su root syslog
}

Теоретически, я хотел бы, чтобы после встречи с файлом журнала с именем thelog.log был повернут в thelog.20150622.log , а на следующий день - в thelog.20150623.log и так далее. Я хочу это для нескольких лог-файлов с произвольными именами файлов, например, в папке могут быть thelog.log и anotherlog.log одновременно.

Что я на самом деле вижу , хотя:

thelog.20150622.20150623.log
thelog.20150623.log
thelog.log
anotherlog.20150622.20150623.log
anotherlog.20150623.log
anotherlog.log

Причина в том, что шаблон glob (/var/log/update-job/*.log) также соответствует повернутым файлам. Я думал, что logrotate был достаточно умен, чтобы использовать директиву dateformat, чтобы выяснить, что файл вращается, но, очевидно, это не так.

Есть идеи, как это решить?

Обходным путем может быть удаление delaycompress , чтобы при сжатии файлы сжимались в .log.gz, чтобы они больше не соответствовали шаблону glob. Я хотел бы найти менее хакерское решение, хотя.

0