Sem uma alteração no seu processo, o logrotate por si só não fará o que você está procurando aqui. O principal problema aqui é que, embora o logrotate possa receber caracteres curinga, ele não tratará os arquivos como um só se você fizer isso e tentará girar todos eles individualmente, o que definitivamente NÃO é o que você deseja.
No entanto, você pode fazê-lo funcionar da maneira que você descreve, desde que o backup mais recente seja criado sem um carimbo de data. Se o processo de backup criar, /root/backup.tar.gz
por exemplo, você poderá usar a seguinte configuração de rotação de log:
/root/backup.tar.gz {
rotate 5
nocompress
dateext
dateformat _%Y-%m-%d
extension .tar.gz
missingok
}
O rápido resumo das opções aqui:
rotate 5
- mantenha 5 rotações antes de excluir
nocompress
- não comprima os arquivos depois de girar
dateext
- use a data como extensão de rotação em vez de aumentar números
dateformat _%Y-%m-%d
- defina o formato de extensão de data que você deseja usar
extension .tar.gz
- faça o que .tar.gz
vem depois da extensão de rotação
missingok
- se o arquivo que queremos girar não estiver lá, não se preocupe e siga em frente (o padrão é gerar um erro)
Espero que isto ajude!
Você não precisa usar o logrotate para fazer isso. Basta usar um comando como este:
Este comando deixará os 5 arquivos mais recentes e removerá os restantes (se houver). Você pode usá-lo em um trabalho cron.
fonte
Eu apenas tive a mesma situação. O logrotate parece muito legal, mas não funcionou 100% para mim porque não corresponde aos dados e aos nomes de arquivos.
Portanto, para evitar confusão, decidi incorporar a seguinte linha para executar após criar meu backup atual para manter os últimos 5 backups.
Meus logs são:
Nova linha no meu script de backup (com base em um comentário acima)
Saudações,
fonte
Você pode girá-lo manualmente.
Agora, para colocar dados no log, basta fazer
fonte