Backups para Drupal: Archivos y base de datos

  • 20 Nov 2011
  • Drupal, Linux, Shell script

Tengo un ambiente de desarrollo de una webapp bajo Drupal. Bueno, contar la necesidad sería muy largo para un domingo. Directamente: La idea es que un cron me haga un backup del sitio. Archivos y base de datos. Ahí va.

Lo que hay que hacer antes de lo primero es crear un directorio que se llame "backup". Yo lo hice dentro de drupal... pero se puede poner en cualquier lado.

Lo primero es crear un archivo donde tengo una lista de los archivos o directorios que no quiero backup-ear. Se va a llamar .exclude

.htaccess
*/.htaccess
*/.htpasswd
.ftpaccess
.listing
*/.listing
*/.svn
*/.svn/*
.exclude
.updater
update.tar.gz
backup*

Después, creamos un shellscript que va a crear el tar.gz y un mysqldump de la base, sería más o menos así:

#!/bin/sh

NOW=$(date +"%Y-%m-%d-%H")
BACKUP_PATH=backup/$NOW
DB=nombre_db

tar -zcvf $BACKUP_PATH.tar.gz -X .exclude *
mysqldump $DB > $BACKUP_PATH.sql

Por último, habría que agregarlo a las tareas del cron... con el comando crontab -e, por ejemplo