Respalda tus bases de datos mediante Crontab

El respaldo de nuestras bases de datos es una tarea que en ocasiones puede tornarse un poco difícil por diversos factores (falta de tiempo, flojera, etc.), pero para eso tenemos una buena herramienta que podemos customizar según nuestras necesidades: CRONTAB

Requerimientos:

-Tener un servidor de Bases de Datos
-Suficiente espacio en Disco

Lo primero que necesitaremos es una base de datos que respaldar (ya sea de PostgreSQL o de MySQL); así que primero ejemplificaremos como hacer todo el proceso de configuración para PostgreSQL.

Pasos a Seguir con PostgreSQL:

Primero debemos generar un script con todos los parámetros necesarios para respaldar nuestra base de datos de la forma que deseamos, para que esto sea más sencillo, ejemplificaremos como realizar el proceso de respaldo para una base de datos llamada inventario:

#!/bin/sh
#Script Respalda DB ñ_ñ
cd $HOME
pg_dump -d inventario > inventario_”$(date +%d_%m_%Y)”.sql
tar -c inventario”$(date +%d_%m_%Y)”.sql | bzip2 > inventario_”$(date +%d_%m_%Y)”.tar.bz2
mv inventario_”$(date +%d_%m_%Y)”.tar.bz2 /respaldo/db_inventario
rm -rf inventario_”$(date +%d_%m_%Y)”.sql

Ahora explicaremos paso a paso el script:

#!/bin/sh

Tipo de shell (Shell del sistema)

#Script Respalda DB Inventario ñ_ñ

Comentario agregado al script para saber la función que realiza

cd $HOME

Llama a la variable de entorno HOME que al combinarla con cd nos redirige al /home del usuario que este ejecutando el script en ese momento.

pg_dump -d inventario > inventario_”$(date +%d_%m_%Y)”.sql

Aquí es donde se crea un respaldo de nuestra base de datos inventario, podemos observar que se incluye el comando date encerrado entre comillas y el signo $, esta modificación de los atributos del comando lo que hará es asignara automáticamente la fecha que tiene nuestro servidor al nombre del archivo de respaldo sql, donde %d representa el dia en formato numérico de 2 dígitos, %m el mes en formato numérico y %Y el año en formato numérico de 4 dígitos, puedes obtener mas información sobre el comando date en www.linuxtotal.com.mx.

tar -c inventario”$(date +%d_%m_%Y)”.sql | bzip2 > inventario_”$(date +%d_%m_%Y)”.tar.bz2

Con esta linea estaremos indicando que nuestro archivo .sql debe ser empaquetado en tar y comprimido en bzip2 manteniendo el formato de fecha que ya se explico anteriormente.

mv inventario_”$(date +%d_%m_%Y)”.tar.bz2 /respaldo/db_inventario

Esta instrucción mueve nuesto respaldo comprimido en tar.bz2 a un directorio “X” donde deseamos que se guarden nuestro archivo historico de respaldos.

rm -rf inventario_”$(date +%d_%m_%Y)”.sql

Borra el archivo sql generado por la linea que respalda nuestra base de datos

Lo siguiente es probar nuestro script y verificar que nuestras instrucciones se cumplan sin problemas.

Ahora solo hace falta hacer que esta rutina se ejecute automáticamente en tiempos que nosotros determinaremos, con la finalidad de que no sea requerida intervención alguna de nuestra parte, para ello editaremos el crontab con el comando:

crontab -e

Por default el comando nos abrira el crontab en un editor de texto plano (es el vi);para insertar una nueva linea presionamos la tecla “insert” y añadiremos nuestra rutina siguiendo una sintaxis como la mostrada a continuación:

* * * * * /home/carpeta_donde_esta_el_script/nombre_del_script.sh

Los asteriscos representan según el orden lo siguiente :
1er * = Minutos (0-60)
2do * = Horas (0-23)
3er * = Mes/Día (1-31)
4to * = Mes (1-12)
5to * = Dias/Semana(0-7)

El script de nuestro ejemplo quedaría mas o menos así:

15 19 * * 1,2,3,4,5,6 /root/respaldo_inventario_db.sh

Donde nuestro script que contiene las instrucciones para realizar el respaldo se ejecutara diariamente de Lunes a Sabado a las 19:15hrs

Configuración en Mysql

En el caso de Mysql lo único que cambia son los comandos de respaldo, pero básicamente la sintaxis es la misma

pg_dump -d inventario > inventario_”$(date +%d_%m_%Y)”.sql —- Linea para Postgresql

mysqldump inventario > inventario_”$(date +%d_%m_%Y)”.sql —- Linea para Mysql

Otras funciones Continuara >>

About these ads

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s