
No momento, o logrotate renomeia arquivos de log antigos para access.log.1.gz, access.log.2.gz, etc. Eu preferiria que os chamasse de access.log.20090714.gz, access.log.20090715.gz, etc - um para cada dia.
Não consigo encontrar nenhuma opção para especificar um padrão de nome de arquivo para os arquivos de log antigos. Você sabe como fazer isso?
A propósito, isso é para girar arquivos de log lighttpd, se isso for importante.
Responder1
Em /etc/logrotate.conf
ou /etc/logrotate.d/lighttpd
, ou no arquivo apropriado, se estiver em qualquer outro lugar, adicione dateext
à sub-rotina a qual deseja aplicar sufixos de data.
Mais informações depágina de manual do logrotate:
texto de data
Arquive versões antigas de arquivos de log adicionando uma extensão diária como AAAAMMDD em vez de simplesmente adicionar um número.
Responder2
Use o cronolog - ele gravará arquivos de log com os nomes de arquivo corretos em primeiro lugar (por exemplo, geralmente faço com que meus servidores web escrevam arquivos de log como AAAA/MM/DD/acesso ou AAAA/MM/DD/erro e assim por diante). Mais detalhes sobre como configurar o cronolog com lighttpd estão aqui:http://redmine.lighttpd.net/projects/1/wiki/MigratingFromApache
(embora essa página mencione que server.errorlog não pode ser executado através do cronolog, parece haver um relatório de bug para isso que foi marcado como "corrigido" - infelizmente não posso postar mais de um URL por vez, pois Sou um "novo" usuário no serverfault...)
Responder3
Não acho que lighttpd ou logrotate possam fazer isso sozinhos. Vejo duas opções para conseguir isso:
Faça seu próprio script diretamente após o logrotate, como no final do 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
Ou o syslog-ng pode criar arquivos de log por data, e o lighttpd pode enviar logs para o syslog em vez de gravá-los sozinho.
# 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); };
e defina accesslog.use-syslog
& server.errorlog-use-syslog
no lighttpd conf.
Editar:O Cronolog é mais simples e/ou do que qualquer uma das minhas sugestões, eu aceitaria se funcionar para você.