Прямо сейчас logrotate переименовывает старые файлы журналов в access.log.1.gz, access.log.2.gz и т. Д. Я бы предпочел, чтобы он называл их access.log.20090714.gz, access.log.20090715.gz, и т. д. - по одному на каждый день.
Я не могу найти никакой возможности указать шаблон имени файла для старых файлов журнала. Ты знаешь как это сделать?
Кстати, это для ротации файлов журнала lighttpd, если это имеет значение.
В /etc/logrotate.conf
или /etc/logrotate.d/lighttpd
или нужный файл, если где-либо еще, добавьте dateext
к строфе вы хотите применить суффиксы даты.
Больше информации от страница руководства logrotate:
dateext
Архивируйте старые версии файлов журнала, добавляя ежедневное расширение, например ГГГГММДД, вместо простого добавления числа.
Используйте cronolog - он будет записывать файлы журналов с правильными именами файлов в первую очередь (например, у меня обычно мои веб-серверы записывают файлы журналов как YYYY / MM / DD / access или YYYY / MM / DD / error и т. Д.). Более подробная информация о настройке cronolog с помощью lighttpd находится здесь: http://redmine.lighttpd.net/projects/1/wiki/MigratingFromApache
(хотя на этой странице упоминается, что server.errorlog не может быть запущен через cronolog, похоже, есть отчет об ошибке для этого, который был помечен как "исправленный" - к сожалению, я не могу публиковать более одного URL-адреса за раз, поскольку Я "новый" пользователь на serverfault ...)
Я не думаю, что lighttpd или logrotate могут сделать это сами по себе. Я вижу два варианта достижения этого:
Создайте свой собственный сценарий сразу после logrotate, например, в конце его cronjob. Что-то вроде:
if [ -f /var/log/lighttpd/access.log.1.gz ]; then`
mv /var/log/lighttpd/access.log.1.gz /var/log/lighttpd/access.log.$date.gz
fi
Или syslog-ng может создавать файлы журналов по дате, а lighttpd может отправлять журналы в syslog, а не записывать их сам.
# syslog-ng.conf
destination df_lighttpd { file("/var/log/lighttpd/$YEAR$MONTH$DAY.log"); };
filter f_lighttpd { program("lighttpd"); };
log { source(s_all); filter(f_lighttpd); destination(df_lighttpd); };
и установить accesslog.use-syslog
& server.errorlog-use-syslog
в lighttpd conf.
Редактировать: Cronolog проще и / или чем любое из моих предложений, я бы пошел с этим, если он работает для вас.