Respaldos automáticos diarios de un sitio web
Hoy vas a aprender a hacer respaldos automáticos diarios de sitios web en Nginx (archivos y tablas) de forma rápida y automática.
Este proceso es para quienes tengan acceso UNIX a través de una conexión SSH (como en una VPS por ejemplo). El ejemplo es para nginx, pero si usas apache solo cambia los directorios pertinentes
Para ello, generaremos un script que se ejecute cada 24 horas, donde se cree un respaldo de todo tu sitio web y tus tablas. Los respaldos de cada cuarto día se eliminarán, para no saturar tu disco y solo conservarás los respaldos de 3 días a la fecha
Generando script de respaldo web
PASO 1. En PhpMyAdmin:
Crea un usuario que se llame respaldo con todos los permisos y que la contraseña sea CONTRASEÑA (obviamente puedes crear otro nombre de usuario y una contraseña más complicada, esto es sólo un ejemplo)
PASO 2. En UNIX:
Suponiendo que tienes 3 sitios web en tu servidor…
Crea un directorio donde poner tu script:
mkdir -p /var/www/scripts/
vi /var/www/scripts/respaldos.sh
Presiona la tecla I para insertar, luego, dentro pegar (CTRL -> clic derecho -> pegar) lo siguiente:
#!/bin/bash
dtrm=`date -d "-2 days" +%d-%b-%Y`
rm -rf /var/respaldo-$dtrm.tar.gz
dt=`date +%d-%b-%Y`
mkdir -p /var/respaldo-$dt/sql/
cd /var/respaldo-$dt/sql/
mysqldump -u respaldo -pCONTRASEÑA Nombre_de_la_base_de_datos_de_tu_sitio_uno.com > Nombre_de_la_base_de_datos_de_tu_sitio_uno.com.sql
mysqldump -u respaldo -pCONTRASEÑA Nombre_de_la_base_de_datos_de_tu_sitio_dos.com > Nombre_de_la_base_de_datos_de_tu_sitio_dos.com.sql
mysqldump -u respaldo -pCONTRASEÑA Nombre_de_la_base_de_datos_de_tu_sitio_tres.com > Nombre_de_la_base_de_datos_de_tu_sitio_tres.com.sql
cp -r /etc/nginx/sites-available /var/respaldo-$dt/sites-available/
mkdir -p /var/respaldo-$dt/sitios/
rsync -av --exclude='phpmyadmin' /var/www/html /var/respaldo-$dt/
rsync -av --exclude='html' /var/www /var/respaldo-$dt/sitios/
cd /var/
tar -czvf respaldo-$dt.tar.gz respaldo-$dt
rm -rf /var/respaldo-$dt
Para salir y guardar:
ESC :wq Enter
PASO 3. Tareas programadas con CONTAB
EN UNIX:
chmod 777 /var/www/scripts/respaldos.sh
crontab -e
Elegir editor vim (opcion 2) y hasta abajo de todo poner:
* 05 * * * cd /var/www/scripts ; ./respaldos.sh
Guardar y cerrar:
ESC :wq Enter
¡Listo! Tus respaldos se crearán todos los días a las 5 de la mañana y estarán en el directorio /var puedes descargarlos a tu computadora usando FileZilla