Copias de seguridad de sitios drupal con drush

drupal.jpg
Solucionex
10
Mar 11

Esta es una traducción adaptada del manual Drupal Workshop 3 — Backing Up, Restoring, & Updating de la Universidad de Stanford

En este tutorial se cubren los siguientes aspectos relacionados con el mantenimiento de un sitio Drupal:

  • Copia de seguridad de un sitio Drupal
  • Restauración de un sitio Drupal a partir de una copia de seguridad

I. Utilización de la terminal

La forma más fácil y segura de respaldar y restaurar sitios Drupal es utilizar la línea de comandos de Unix. Se trata de conectar con el servidor a través de SSH (Secure Shell).

II. Crear un directorio para las copias de seguridad

Usando la terminal del ordenador:

  1. Si se va a trabajar en un servidor remoto lo primero será abrir una conexión al servidor. Para ello, escribir en la terminal: $ ssh usuario@servidor e introducir la contraseña.
  2. Una vez conectado, nos situamos en la carpeta en la que queramos crear los backups $ cd /carpeta/donde/crear/backup
  3. Creamos el directorio donde se irán generando las copias de seguridad $ mkdir drupal_backups

II. Backup de la base de datos de Drupal usando drush

drush es un shell de línea de comando y un script Unix para Drupal. Tiene que estar instalado a nivel de sistema en el servidor, con lo que estará disponible automáticamente para su uso con todos los sitios Drupal instalados en el sevidor. drush hace que muchos aspectos de la administración de Drupal se haga de forma rápida y fácil, incluyendo las copias de seguridad de la base de datos.

  1. Usando la línea de comandos, cambia al directorio al del sitio Drupal $ cd /carpeta/sitio/drupal
  2. Ahora, se realiza la copia de seguridad de la base de datos mediante “dimping” en un fichero: $ drush -v sql-dump –-result-file=/carpeta/donde/crear/backup/backup-drupal-db.sql
  3. Espera a que se complete el backup de la base de datos
  4. Lista el contenido del directorio de backups para comprobar que se ha realizado correctamente $ ls -la /carpeta/donde/crear/backup/drupal_backups

Eso es todo ¡Se acaba de realizar la copia de seguridad de la base de datos del sitio Drupal!

III. Backup del directorio del sitio Drupal

Al hacer copias de seguridad, es necesario incluir el directorio Drupal entero, no sólo la carpeta /sites. Esto hace que sea más fácil tanto realizar la copia de seguridad como la restauración del sitio. Del mismo modo, lo mejor es realizar la copia de seguridad como un único archivo comprimido, en lugar de hacerlo de los archivos individuales y las carpetas. La forma más sencilla es utilizar el comando de Unix tar.

  1. Nos situamos en la carpeta que contiene el proyecto Drupal. En un paso anterior estábamos dentro del sitio Drupal $ cd /carpeta/sitio/drupal En la terminal escribimos: $ cd ..
  2. Listamos el contenido del directorio para confirmar que estamos en lugar correcto. El directorio del proyecto Drupal debe ser uno de los listados $ ls -la
  3. Hacemos la copia de seguridad del directorio Drupal. Para ellos, escribimos en la terminal $ tar -czvf /carpeta/donde/crear/backup/nombre-archivo-backup.tar.gz /carpeta/sitio/drupal
  4. Solo queda esperar que se termine de generar el fichero comprimido
  5. Se lista el contenido del directorio de backups para confirmar que el fichero fue creado correctamente $ ls -la /carpeta/donde/crear/backup/

Eso es todo ¡Se acaba de realizar la copia de seguridad del sitio Drupal!

IV. Restaurando un sitio Drupal desde un backup

Así como la copia de seguridad de un sitio Drupal completo implica hacer copia tanto de la base de datos como del directorio del sitio, la restauración implica hacerlo también de la base de datos y del directorio. Ambos se hacen con los comandos estándar de Unix, pero podemos utilizar drush para obtener parte de la información que necesitamos para ejecutarlos.

Restaurando la base de datos

  1. Desde la línea de comandos, cambiamos al directorio donde queremos restaurar nuestro proyecto Drupal $ cd /carpeta/sitio/drupal
  2. Usamos drush para obtener información que necesitamos sobre la base de datos. En la terminal, escribimos: $ drush sql-conf El resultado debe ser algo como esto Array ( [driver] => mysql [username] => nombre-usuario-sql [port] => [host] => localhost [database] => nombre-base-datos )
  3. Se crea la base de datos en el sistema: $ mysqladmin -u [username] -h [host] -p create [database] (reemplazando las palabras entre corchetes por la información obtenida en el paso 2)
  4. Se introduce la contraseña de la base de datos
  5. Se restaura/importa la copia de la base de datos desde el fichero .sql que había generado al hacer la copia de seguridad $ mysql -u [username] -h [host] -p [database] < /carpeta/donde/crear/backup/backup-drupal-db.sql (reemplazando las palabras entre corchetes por la información obtenida en el paso 2)
  6. Se introduce la contraseña de la base de datos

La base de datos está restaurada a como estaba cuando se hizo la copia de seguridad. Lo siguiente será recuperar el código y los archivos.

Restaurando el directorio del sitio Drupal

  1. Nos situamos en la carpeta que contiene nuestro sitio Drupal. Si estábamos en la carpeta del sitio $ cd /carpeta/sitio/drupal En la terminal escribimos: $ cd ..
  2. Descomprimimos el fichero .tar.gz de nuestra copia de seguridad $ tar -xzvf /carpeta/donde/crear/backup/nombre-archivo-backup.tar.gz -C /carpeta/sitio/drupal
  3. Esperamos hasta que finalice

¡El sitio Drupal está totalmente restaurado desde la copia de seguridad!