Backup
https://www.carloscarrascal.com/
esScript de backup para Drupal
https://www.carloscarrascal.com/blog/script-de-backup-para-drupal
<article data-history-node-id="5" class="node node--type-blog-post node--view-mode-rss group-one-column ds-2col-stacked-fluid clearfix">
<div class="group-header">
<div class="field field--name-node-title field--type-ds field--label-hidden field--item"><h1>
Script de backup para Drupal
</h1>
</div>
<div class="field field--name-node-post-date field--type-ds field--label-hidden field--item">Lunes, Abril 28, 2014 - 21:12</div>
</div>
<div class="group-left">
<div class="field field--name-field-tags field--type-entity-reference field--label-hidden field--items">
<div class="field--item"><a href="/tags/drupal" hreflang="es">Drupal</a></div>
<div class="field--item"><a href="/tags/linux" hreflang="es">Linux</a></div>
<div class="field--item"><a href="/tags/backup" hreflang="es">Backup</a></div>
</div>
<div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Cuando hablamos de Drupal, el espectro de productos desarrollados con el es amplísimo. Me refiero a que podemos encontrar desde pequeños portales montados con lo justo y desplegados en un pequeño servidor, hasta completos sites empresariales con varios nodos frontales, balaceadores de carga, cluster de bases de datos, etc.</p>
<p>Normalmente en proyectos grandes se dispone de copias de seguridad de ficheros y bases de datos, por cuenta de los chicos de sistemas, pero este tipo de backups suelen ser complicados de restaurar, por afectar a mas componentes del sistema opertivo ademas de nuestro querido Drupal que se nos acaba de romper. Además, muchas veces ni siquiera pueden ser restaurados por el equipo de desarrollo, con lo que en la práctica no suele ser recomendable fiarnos solo de este tipo de respaldos.</p>
<p>Si queremos estar tranquilos, lo mejor es verlo de esta manera: hoy en día, el espacio en disco es barato.</p>
<p>En la mayoría de los casos, lo normal será que tengamos espacio disponible en disco que podemos usar para realizar nuestros propios backups, programados con una sencilla tarea en el crontab de la máquina, digamos suficiente para guardar una copia diaria durante al menos una semana.</p>
<p>Para ello, suelo utilizar alguna variación de este script, que saca copia de la base de datos y del directorio fisico que le indiquemos, con lo que tendremos un backup completo del sitio Drupal en dos ficheros.</p>
<p>Para utilizar este script necesitaremos:</p>
<ul>
<li>mysqldump, como herramienta para realizar la copia de la BBDD</li>
<li>tar, como herramienta para generar un archivo comprimido de los ficheros.</li>
</ul>
<p><strong>OJO:</strong> Cuidado <u>donde dejamos este script y los permisos del fichero</u>, ya que tendremos en el los datos de acceso al MySQL de Drupal. No podemos tenerlo en un directorio público y su juego de permisos deberia ser algo como 700, dependiendo de como lo vayamos a ejecutar.</p>
<p> </p>
<pre>
#!/bin/bash
# DATOS
DRUPAL_FILES=/var/www/nuestro-drupal
BACKUP_DIR=/la/carpeta/raiz/de/backup
FILENAME=drupal_auto_backup_
USER=usuarioBBDD
PASSWORD=passwordBBDD
DATABASE=nombreBBDD
HOST=hostBBDD
# Numero de dias a conservar los ficheros
DIAS=7
# COMIENZO
DATE=`date +%Y"-"%m"-"%d"--"%H"-"%M`
PATH_MYSQL=$BACKUP_DIR/ddbb/
PATH_FILES=$BACKUP_DIR/files/
if [ ! -d "$PATH_MYSQL" ]; then
echo "Creando directorio $PATH_MYSQL"
mkdir -p $PATH_MYSQL
fi
if [ ! -d "$PATH_FILES" ]; then
echo "Creando directorio $PATH_FILES"
mkdir -p $PATH_FILES
fi
FILE_MYSQL=$PATH_MYSQL$FILENAME$DATE".sql"
FILE_TAR=$PATH_FILES$FILENAME$DATE".tar.gz"
echo "Generando backup de MySQL $FILE_MYSQL"
mysqldump --user=$USER --password=$PASSWORD --host=$HOST $DATABASE > $FILE_MYSQL
echo "Generando backup de ficheros $FILE_TAR"
cd $DRUPAL_FILES
tar cvvzf $FILE_TAR *
echo "Eliminando backups antiguos"
find $PATH_MYSQL -type f -name "$FILENAME*" -mtime +$DIAS -exec rm -v {} \;
find $PATH_FILES -type f -name "$FILENAME*" -mtime +$DIAS -exec rm -v {} \;
</pre>
</div>
</div>
<div class="group-footer">
<section>
<h2>Añadir nuevo comentario</h2>
<drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&1=5&2=comment&3=comment" token="FDpRQwYdbnmWRnYAH9qRd8tLV8cpeL87AjLAWjYuDfg"></drupal-render-placeholder>
</section>
</div>
</article>
Mon, 28 Apr 2014 19:12:10 +0000root5 at https://www.carloscarrascal.com