
En este momento, logrotate cambia el nombre de los archivos de registro antiguos a access.log.1.gz, access.log.2.gz, etc. Preferiría que los llamara access.log.20090714.gz, access.log.20090715.gz, etc., uno para cada día.
No puedo encontrar ninguna opción para especificar un patrón de nombre de archivo para los archivos de registro antiguos. Sabes como hacer esto?
Por cierto, esto es para rotar archivos de registro de lighttpd, si eso importa.
Respuesta1
En /etc/logrotate.conf
o /etc/logrotate.d/lighttpd
, o en el archivo adecuado si está en otro lugar, agregue dateext
a la estrofa a la que desea aplicar sufijos de fecha.
Más información depágina de manual de logrotate:
fechatexto
Archive versiones antiguas de archivos de registro agregando una extensión diaria como AAAAMMDD en lugar de simplemente agregar un número.
Respuesta2
Utilice cronolog: escribirá archivos de registro con los nombres de archivo correctos en primer lugar (por ejemplo, generalmente hago que mis servidores web escriban archivos de registro como AAAA/MM/DD/acceso, o AAAA/MM/DD/error, etc.). Más detalles sobre la configuración de cronolog con lighttpd están aquí:http://redmine.lighttpd.net/projects/1/wiki/MigratingFromApache
(Si bien esa página menciona que server.errorlog no se puede ejecutar a través de cronolog, parece haber un informe de error para esto que se ha marcado como "corregido"; desafortunadamente no puedo publicar más de una URL a la vez, ya que Soy un usuario "nuevo" en serverfault...)
Respuesta3
No creo que lighttpd o logrotate puedan hacer esto por sí solos. Veo dos opciones para lograr esto:
Haga sus propios scripts directamente después de logrotate, como al final de su cronjob. Algo como:
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
O bien, syslog-ng puede crear archivos de registro por fecha y lighttpd puede enviar registros a syslog en lugar de escribirlos él mismo.
# 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); };
y configure accesslog.use-syslog
& server.errorlog-use-syslog
en la conf lighttpd.
Editar:Cronolog es más simple y/o que cualquiera de mis sugerencias, lo aceptaría si funciona para usted.