Nos enfrentamos a lo que estoy seguro es un problema increíblemente común: hacemos copias de seguridad diarias que dan como resultado archivos comprimidos que tienen la fecha en el nombre del archivo, y no queremos conservarlos todos para siempre.
Algunos requisitos que no creo que sean demasiado descabellados:
- eliminar todas menos las últimas X copias de seguridad/días
- mantener las copias de seguridad del domingo
- mantenga la última copia de seguridad de cada mes
- alertar a alguien si la copia de seguridad más reciente tiene un tamaño 0/más del 50% más grande/más pequeña que la última
Intenté buscar en Google, pero solo encontré mil scripts, muchos de ellos con problemas y errores evidentes. ¿No existen soluciones "adecuadas" para este problema que estén bien probadas y tengan una comunidad? ¿Estoy condenado a copiar y pegar un script de SO o SU que no recibirá mantenimiento ni corrección de errores y que algún día probablemente consumirá todas nuestras copias de seguridad?
Respuesta1
EGF (Abuelo-Padre-Hijo) el método de retención es probablemente una buena respuesta aquí. Combine eso con algunos crons oportunos como los que menciona @ivanivan.
Básicamente, realiza copias de seguridad diarias, semanales y mensuales (los crons controlarán cuáles son).
Entonces podrás decidir las políticas de retención.
- Las copias de seguridad diarias normalmente se mantienen durante un mínimo de 1 semana (pero a veces de 2 a 3 semanas).
- Las copias de seguridad semanales normalmente se conservarían durante 5 semanas (pero potencialmente 8 semanas).
- Las copias de seguridad mensuales normalmente se conservarían durante 6 o 12 meses (dependiendo de la copia de seguridad anual o semestral).
- También se pueden realizar copias de seguridad anuales o semestrales, pero es posible que solo sean útiles para la contabilidad o cuando necesite mantener registros.
Los crons también borrarían los archivos antiguos que están fuera de la ventana de la política.
Como sugiere Ivanivan:
Su problema parece que un conjunto relativamente simple de scripts de shell y trabajos cron lo solucionaría. Podría sugerirle que, en lugar de buscar en Google un script que funcione para la situación de otra persona, busque en Google cómo aprender a realizar scripts de shell.
es posible que desees consultar las secuencias de comandos bash; es genial aprenderlo :)