Como hacer backup de tus archivos y bases de datos

16 de julio, 2020 @ 02:31 — 0 comentariosDescargar PDF

A pesar de que nosotros ya hacemos copias de seguridad de todos tus servicios, siempre es conveniente que tu mismo también hagas y almacenes copias de seguridad de tus webs. Esto es especialmente importante en periodos donde hagas muchos cambios en tu web, momentos en los que es habitual cometer errores catastróficos.

En general, todos nuestros servicios de hosting ofrecen la posibilidad de descargar una copia de seguridad completa del servicio, pero es algo que debes hacer de forma expresa, no es un proceso automatizado.

También puedes usar la utilidad de backup de Softaculous para hacer backups puntuales o incluso programar la creación automática de copias de seguridad, pero esta herramienta solo permite hacer backups de aplicaciones PHP gestionadas por Softaculous.

Por tanto, si quieres hacer copias de seguridad periódicas y automáticas de archivos o bases de datos concretas, es preciso crear un script de backup y programar su ejecución como una tarea cron. Hemos creado está guía para explicar y facilitar esta posibilidad.

1 - Descargar el script de backup

Hemos desarrollado un pequeño script de shell que puedes descargar desde aquí y usarlo para crear copias de seguridad de tus archivos y bases de datos. Debes descargar, descomprimir y guardar el script en tu ordenador.

2 - Crear un nuevo usuario MySQL

Si no quieres hacer backup de ninguna base de datos MySQL, este paso es innecesario.

En cambio, si quieres hacer backup de alguna base de datos MySQL, sigue las indicaciones de la guía Crear y añadir un usuario MySQL a una base de datos para crear un nuevo usuario MySQL y darle privilegios sobre las bases de datos que quieres respaldar.

3 - Configurar el script

Abre el script de backup con un editor de texto plano. Es preciso que rellenes las variables de configuración que vienen definidas en la parte superior del mismo. Verás que la configuración predeterminada es:

######### CONFIGURACION OBLIGATORIA #####################

# Nombre de las carpetas que debemos hacer backup, separados por espacios.
# Por ejemplo: mail public_html sites
# Si se deja en blanco ( DIRS="" ) no se har backup de ninguna carpeta
DIRS="public_html sites"

# Nombre de las BBDD MySQL que debemos hacer backup, separados por espacios
# Si se deja en blanco ( MYSQL_DBS="" ) no se har backup de ninguna BBDD
MYSQL_DBS=""

# User/pass de un usuario MySQL que debe tener permisos sobre todas las
# bases de datos MySQL de las que vamos a hacer backup
MYSQL_USER=""
MYSQL_PASS=""

######### CONFIGURACION OPCIONAL ########################
 
# Se borraran los backups con una antigedad mayor de la indicada
# El valor por defecto son 30 dias, es decir, que se borrara todo backup que
# tenga ms de 30 das de antigedad
DELETE_AFTER_DAYS=30

# Destino del backup, es decir, la ruta completa en la que se almacenarn los
# backups
DESTINATION="$HOME/backups"

Si quieres hacer backup de algún directorio, debes definirlo en la variable DIRS . Por ejemplo, si quieres hacer backup de los directorios public_html y sites/midominio123.com deberías dejarlo así:

DIRS="public_html sites/midominio123.com"

Si quieres hacer backup de una o más bases de datos MySQL, debes rellenar la variable MYSQL_DBS con los nombres de las bases de datos. Por ejemplo, si quieres hacer backup de 3 bases de datos llamadas web1, web2 y web3, tendrías que dejarlo así:

MYSQL_DBS="web1 web2 web3"

Además, si quieres hacer backup de MySQL, debes rellenar las variables MYSQL_USER y MYSQL_PASS con los datos de conexión del usuario MySQL que has creado en el paso 2 de esta guía.

Opcionalmente, puedes ajustar el valor de las variables DELETE_AFTER_DAYS y DESTINATION, aunque en la mayoría de los casos no será necesario.

4 - Subir el script a tu hosting

Puedes subir el script usando un programa FTP, SSH o el administrador de archivos del Panel de Hosting.

Nuestra recomendación es que crees un directorio llamado bin en la home de tu hosting y subas allí el archivo de backup. En el resto de la guía asumiremos que haces eso y que la ruta completa del script es /home/usuario/bin/backup.sh

5 - Dar permisos de ejecución al script

Lo puedes hacer desde un programa FTP o desde la consola accediendo vía SSH. Basta con:

chmod 700 /home/usuario/bin/backup.sh

6 - Crea el primer backup

Para evitar sustos, te recomendamos acceder a tu hosting vía SSH para probar y ejecutar el script de backup. Así sabrás si lo has configurado correctamente o si has cometido algún error.

Por tanto, acceder a tu hosting vía SSH y ejecuta el script:

/home/usuario/bin/backup.sh --debug

Si todo va bien y has configurado el script para hacer backup de un directorio y una base de datos, la salida será algo así:

Creamos archivo /home/usuario/bin/.backup-database.cnf
Creamos carpeta temporal /home/usuario/backups/20200702_0648
Borramos backups con mas de 30 dias de antiguedad
Copiamos la carpeta 'public_html' a /home/usuario/backups/20200702_0648
Creamos el dump de 'usuario_db1' en /home/usuario/backups/20200702_0648
Backup creado: /home/usuario/backups/20200702_0648-backup.tgz

7 - Programa la ejecución periódica

Una vez verificado que el script de backup hace correctamente su trabajo, lo lógico es crear una tarea CRON que ejecute el script de forma periódica.

Nuestra recomendación es que lo ejecutes todos los días en horario nocturno. Por ejemplo, para ejecutarlo todas las noches a las 05:20 tendrías que definir la siguiente tarea CRON:

Entra en tu panel de hosting y al final del todo en la sección Utilidades, haz click sobre el icono Programador de tareas CRON.

Dentro del mencionado apartado, rellena el formulario tal y como se ve en la siguiente imagen y haz click sobre Enviar para crear la tarea.

Etiquetas: