Eu tenho um diretório com muitos arquivos de log, todos os quais eu gostaria de alternar diariamente. Para fins organizacionais, eu gostaria de poder mover os logs rotacionados para um diretório (ou subdiretório) diferente nomeado por data, mantendo a última semana de logs.
Posso usar o logrotate para obter a maior parte disso, roatando os arquivos no local ou até movê-los para um único diretório diferente usando a olddir
diretiva, mas estou tendo problemas para encontrar uma solução para criar subdiretórios individuais por rotação. Como posso conseguir isso ?:
Logs to rotate: /var/log/example/*
Desired target directories (keeping a week):
/var/log/example/20121006/*
[ ... ]
/var/log/example/20121012/*
postrotate
vai fazer o truque. A única coisa que preciso adicionar é limpar os diretórios antigos com mais de uma contagem ou mais de uma data.find | xargs
comando deve excluir todos os subdiretórios imediatos de/var/log/example
se eles foram modificados pela última vez há mais de 7 dias.Você tem uma
olddir
diretiva que pode usar no arquivo de configuração.A partir da documentação:
Referência : https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html
fonte