Con respecto a las formas, siempre es recomendable hacerlos a través de varios medios, como ser: cintas, discos, discos distribuidos, Raid, y nunca olvidar de hacer una versión (o más) que no se encuentre físicamente en la misma instalación de los servidores (si hay un incendio, o un robo, como hacemos para reconstruir el servidor?). Hasta se podría aprovechar alguna de las famosas cuentas de Gmail.
En este caso, el ejemplo que voy a comentar desarrolla otra forma de sentirnos un poco más seguros: las "versiones" y la "rotación" del respaldo ;-)
La idea es hacer "respaldos rotativos", es decir, respaldar nuestra base de datos rotando los días de la semana, donde por día podremos respaldar varias veces, y vamos acumulando "versiones" a través de toda la semana. Una vez que cumplamos un ciclo, es decir, si iniciamos un Lunes y luego de una semana, volvemos a caer en el Lunes, borramos los respaldos antiguos y realizamos los del día corriente.
Otro de los beneficios, además de tener respaldos de todos los días, y varias veces por semana, es que podemos dejarlo trabajar *casi* automáticamente, porque nunca correríamos peligro de quedarnos sin espacio de disco (aunque, volvemos al inicio, si se rompe el disco, se pierden todos los respaldos rotativos).
La idea es la siguiente:
Creamos una estructura como:
/var/respaldos/rotativos (en "var", porque es información "variable", como los "logs", "cache", etc).
/var/respaldos/scripts (es bueno ser ordenado, ahí van los scripts de respaldos)
Y dentro del directorio "rotativos", directorios con los nombres de los días de la semana (en este caso, en inglés y abreviados):
Fri Mon Sat Sun Thu Tue Wed
Y tenemos el primer scripts, llamado "respaldo_base.sh" (en este caso usaremos la base de datos PostgreSQL, pero perfectamente se puede cambiar los comandos para MySQL):
#!/bin/bash
DB="nombre_base_datos"
DIR_RESP="/var/respaldos/rotativos"
DIA_ACTUAL=`date +%a`
FECHA_ACTUAL=`date +%Y%m%d`
HORA_ACTUAL=`date +%H_%M`
FECHA=`date +%Y%m%d-%H:%M`
ARC_RESP="$FECHA_ACTUAL-$HORA_ACTUAL"
DESTINO=$DIR_RESP/$DIA_ACTUAL/$ARC_RESP.tar.bz2
DUMP=`which pg_dump`
GZIP=`which gzip`
PAR_DUMP=" "
PAR_GZIP="-f -q --best"
echo "Dia Actual: $DIA_ACTUAL"
$DUMP $PAR_DUMP -U root $DB | $GZIP -f -q --best >
$DIR_RESP/$DIA_ACTUAL/$DB-$ARC_RESP.sql.gz
Sugerencias, bienvenidas ;-)
1 comentario:
Muchas Gracias Mastrr Enrique.
Publicar un comentario