Como hacer copias de seguridad de tu sitio web en un VPS Linux



¿Cuánto vale para ti, tu sitio web?, te has preguntado que perderías si de pronto tu sitio web deja de funcionar, las causas puede ser muchas: Hiciste una actualización y ahora todo da error, borraste algún archivo importante, fuiste hackeado, etc.

Cualquiera de estas cosas pueden arruinar tu sitio web, pero ninguna importa si cuentas con un backup o copia de seguridad reciente, con la que puedas devolver la vida a tu sitio web.

Puedes delegar esta tarea tan importante a otra persona o a una empresa, pero puedes confiar 100% en esa persona, o que pasa si esa empresa cierra sin aviso. La buena noticia es que puedes automatizar todo este proceso de backup, así no perderás tu valioso tiempo y tampoco correrás riesgos.

Para esto vas a necesitar algunas cosas:

  1. Tu sitio web debe estar alojado en un servidor Linux al cual tengas acceso para ejecutar comandos (indispensable).
  2. Debes tener conocimientos básicos de comandos de Linux, si no los tienes, puedes leer esta introducción a los comandos de Linux.

Estructura de archivos

Primero vamos a crear una estructura para poder tener organizadas todas las copias de seguridad, vamos a crear una carpeta llamada backups y dentro de ella dos carpetas más una (scripts) para guardar el código que usaremos para hacer las copias de seguridad y otra (files) para guardar las copias de seguridad. Deberás tener una estructura de archivos como la imagen que se muestra a continuación.

Estructura de archivos para nuestro script de backup automaticos

Programa para realizar los backups automáticos.

Nota: Ahora vamos a crear un archivo, si nunca lo has hecho, puedes leer esta introducción breve al editor de texto de Linux.

Ahora vamos a crear un script para hacer las copias de seguridad, primero crea un archivo nuevo en la ruta /var/backups/scripts/tusitio.sh, puedes cambiar el nombre tusitio por el que tú quieras. Luego en el archivo copias este código:

#!/bin/sh

sitioweb="codigonaranja.com"
bd="my_database_name"
usuario_bd="my_database_user"
clave_bd="my_database_password"
ruta_web="/var/www/yyy"

fecha=`date +%d%m%y%H%M`
mkdir -p /var/backups/files/$sitioweb

mysqldump -u $usuario_bd -p${clave_bd} $bd | gzip > /var/backups/files/$sitioweb/dbbackup_${bd}_${fecha}.bak.gz

tar -zcf /var/backups/files/$sitioweb/sitebackup_${sitioweb}_${fecha}.tar $ruta_web

Para que funcione tendrás que modificar los valores entre comillas de algunas estas variables:

  • sitioweb: Coloca el nombre de tu sitio web, puede ser el dominio si lo deseas.
  • db: Coloca el nombre de la base de datos que usa tu sitio web.
  • usuario_bd: Un usuario para poder conectarse a tu base de datos
  • clave_bd: La clave del usuario para conectarse a la base de datos.
  • ruta_web: La ruta completa hacia tu sitio web, no es la dirección web, sino la del sistema operativo

Ahora que guardes el archivo, tienes que hacerlo ejecutable, esto lo logras con este comando (recuerda cambiarlo según el nombre de archivo que elegiste):

chmod +x /var/backups/scripts/tusitio.sh

Ahora puedes probar si el script funciona con solo ejecutar este comando: (recuerda cambiar el nombre del archivo)

/var/backups/scripts/tusitio.sh

Para saber si funcionó, puedes revisar la carpeta /var/backups/files/ ahí debe haber una carpeta con los archivos de backup, uno de la base de datos y otro de los archivos de tu sitio web.

Programar un Cron, para que tu sitio se actualice automáticamente.

Ya está todo casi listo, solo debemos definir la frecuencia de las copias de seguridad, lo más común es hacerlo cada día, por lo general en la noche. Si no actualizas tu sitio muy seguido, entonces podrías hacer tus copias de seguridad cada semana o cada mes.

En Linux el Cron es una tarea programada, que ejecuta un comando cada cierto tiempo, para crear o editar un cron vamos a usar el comando crontab -e, si es la primera vez que lo ejecutas, es posible que te pida elegir qué editor deseas usar, entonces debes elegir una opción presionando el número del editor que prefieras.

Ahora verás que se abre un archivo de texto, aquí se agrega cada tarea en una línea, entonces vamos hasta la última línea y agregamos esto:

0 0 * * * /var/backups/scripts/tusitio.sh

Con las primeras 5 letras le decimos que se ejecute todos los días a las 12 de la noche, y lo siguiente es el script que creamos. Así tu sitio web se respalda automáticamente todos los días las 12 de la noche.

Como restaurar una copia de seguridad.

Ahora ya tienes copias de seguridad de tu sitio web, si algún día tienes una emergencia y necesitas restaurar tu sitio web, solo tienes que ejecutar estos comandos:

Con este comando vas a restaurar tu base de datos, pero antes tienes que cambiar algunas partes como: archivo_mysql por el nombre del archivo de tu copia, estos inicia con dbbackup_, también cambia usuario por el usuario de tu base de datos y clave por la clave de la base de datos y finalmente nombre_basedatos por el nombre de la base de datos

tar -xzOf archivo_mysql | mysql -u usuario -p clave nombre_basedatos

Ahora par restaurar los archivos de tu sitio web, ejecuta este comando y cambia archivo_sitio_web por la copia de tu sitio web, estos archivos inician con sitebackup_ y luego cambia ruta_sitio_web por la ruta del sitio web que vas a restaurar.

tar -xvf archivo_sitio_web -C ruta_sitio_web

Notas finales

Ahora solo debes de tener unas consideraciones:

  1. Si haces las copias de seguridad cada día, algún día te quedarás sin espacio, entonces tendrás que borrar algunas de las copias de seguridad que tengas.
  2. Si tienes más de un sitio web, puedes crear varios archivos de script, uno para cada sitio web.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *