Olhando para a página de manual de log rotate
, mostramos que dateext
e dateformat
podem ser usado para atingir esse objetivo.
-
dateext: Arquive versões antigas de arquivos de log adicionando uma extensão diária como YYYYMMDD em vez de simplesmente adicionar um número. A extensão pode ser configurada usando a opção dateformat.
-
dateformat (format_string): Especifique a extensão para a data ext usando a notação similar à função strftime (3). Apenas os especificadores% Y% m% de% s são permitidos. O valor padrão é -% Y% m% d. Observe que também o caractere que separa o nome do log da extensão faz parte da string dateformat. O relógio do sistema deve ser definido após 9 de setembro de 2001 para que% s funcione corretamente. Note que os datestamps gerados por este formato devem ser classicamente lexíveis (ou seja, primeiro o ano, depois o mês e depois o dia. Por exemplo, 2001/12/01 está ok, mas 01/12/2001 não é, desde 01/11 / 2002 classificaria mais baixo enquanto é mais tarde). Isso ocorre porque, ao usar a opção de rotação, a opção Girar registro ordena todos os nomes de arquivos girados para descobrir quais arquivos de registro são mais antigos e devem ser removidos.
Então, usando um script logrotate
que uso para configurações do Apache no Ubuntu, você pode fazer isso:
/var/log/apache2/*.log {
weekly
missingok
rotate 26
compress
dateext
dateformat %Y-%m-%d
delaycompress
notifempty
create 640 root www-data
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null
endscript
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
}