
Eu tenho backups diários de banco de dados em um diretório em uma máquina Linux local para vários bancos de dados. O formato de nomenclatura é [dbname].backup; não há carimbo de data/hora e atualmente o backup mais recente substitui o anterior.
A administração deseja manter versões antigas dos arquivos com um carimbo de data anexado ao final e aplicar a seguinte política de retenção:
- todos os arquivos serão retidos por 7 dias
- o primeiro backup do mês para cada banco de dados será retido por 12 meses
- o primeiro backup de cada ano será mantido indefinidamente
Estou coçando a cabeça para escrever esse script, então esperava que alguém tivesse escrito algo assim antes, ou talvez exista uma ferramenta que não conheço que possa gerenciar esse tipo de coisa.
Alguém conhece tal script ou ferramenta?
Responder1
Fazemos muito isso na minha empresa.
A principal coisa que você provavelmente usará é "find" (man find). Por exemplo:
encontre /home -type f -ctime +14 -exec rm -f {} \;
excluirá todos os arquivos de /home em diante que foram criados há mais de 14 dias. Você pode especificar ainda mais opções de localização para aprimorar os arquivos que você está direcionando.
Deixe-me saber se precisar de mais informações ou ajuda para usar o find, mas ele fará tudo o que você precisa.