Limitar el número de archivos en una carpeta específica

Tengo un cronjob que crea una copia de seguridad de la base de datos todos los días a las 3.30:XNUMX am.

La nomenclatura para el nombre de archivo es live_YYYY_MM_DD.sql.gz donde YYYY, MM y DD son las fechas del día en que se realizó la copia de seguridad.

Normalmente, entro y borro las copias de seguridad más antiguas, pero quiero limitar la cantidad de copias de seguridad a las 3 más recientes. ¿Hay alguna forma de hacerlo a través de algún tipo de proceso o script?

Muchas Gracias

editar:

Edité logrotate.conf según http://www.thegeekstuff.com/2010/07/logrotate-examples/

preguntado el 22 de mayo de 12 a las 18:05

gracias, eso es exactamente lo que estaba buscando. -

@holygeek deberías agregar eso como respuesta:

2 Respuestas

Un simple script de shell puede hacer el trabajo, pero sería mejor aprender la herramienta estándar para hacerlo: logrotate. Cuando cambie su requisito para la administración de archivos de copia de seguridad más antiguos, en lugar de modificar un script casero, solo será cuestión de cambiar una entrada de configuración de logrotate.

contestado el 22 de mayo de 12 a las 23:05

ls -t live_*.sql.gz|awk 'NR>3'|xargs echo

Si esto hace eco de los archivos correctos, use rm en lugar de echo. Colóquelo en el lugar adecuado en su secuencia de comandos de respaldo y no necesita instalar logrotate.

contestado el 22 de mayo de 12 a las 23:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.