У меня есть конфигурация 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. Я хотел бы найти менее хакерское решение, хотя.