Llevaba un tiempo queriendo dejar un poco mejor hecho el tema de los backups del blog para evitar quedarme colgado sin un backup en condiciones y no sabía como hacer para evitar llevar el disco de copias viejas y llegar al punto de que el vps me diera error por no tener suficiente espacio.
Había probado varios scripts para hacer backup pero la mayoría de ellos eran sencillos para generar los ficheros de las copias, pero no se encargaban de borrar los archivos de backup de mas de X días, con el fin de tener siempre alguna copia fresca y borrar las ya viejas, la base de datos es posible dejar mas días de copia ya que de momento, ocupa muchísimo menos.
Para aquellos que quieran borrar archivos de backup (la verdad es que puede ser para cualquier tipo de archivo, pero en mi caso, como estoy con los backups) que sean mas viejos de X días, la linea de comando a ejecutar es:
find /home/user/backups/backup* -mtime +7 -exec rm {} \;
En el comando anterior, con “find” localizamos los archivos que tengan de fecha “-mtime” que sean mas viejos de 7 días “+7″ y ejecuta la orden de consola de borrado de los ficheros mostrados en el resultado del anterior comando “-exec rm {}”.
De esta manera garantizamos que nuestro directorio de backups no engorde y nos ocupe el sitio que tenemos contratado con para el alojamiento y evitar el fallo del servidor por falta del mismo.
Para poder automatizar la ejecución de dicho script, y no necesitar ejecutarlo manualmente cada día o cada X días, podemos añadirlo al cron (si nuestro hosting lo permite) y así lanzarlo a ciertas horas para así hacerlo sin tener que controlarlo, para ello, podemos añadir al cron la siguiente linea:
0 4 * * * find /home/user/backups/backup* -mtime +7 -exec rm {} \;
De esta manera, a las 4:00 am se ejecutará solo y siempre tendremos las copias preparadas y sin pasar de los días que queramos.
Fuente: http://www.edubox.org/linux-script-borrar-backup-viejos/#comment-32104