Backups automatizados en una base de datos mysql

julio 24, 2007 at 12:20 pm (Servidores)

En este Articulo aprenderemos como crear un Backup de una base de datos en Mysql una vez creada la enpaquetaremos en tar.gz y la almacenaremos en un directorio de apache protegido con password

Creando copias de una base de datos

Una manera de crear copias de una base de datos es usando el comando mysqlhotcopy
la sintaxis del programa es la siguiente

Código:

mysqlhotcopy --user=nombre_usuario_db  --password=pass_del_usuario  DB_name /path/donde/guardar

Automatizando el Processo

Una manera Podria ser crear un script que nos automatize el proceso y nos cree en un directorio  las copias de la base de datos ordenadas por fechas

Ejemplo del script backup-foro :

Código:

#!/bin/bash
fecha=`date +%Y%m%d`
mkdir /var/www/copias/$fecha
 mysqlhotcopy --user=usuario_db --password=password foro /var/www/copias/$fecha && cd /var/www/copias/$fecha && tar -czf backup-foro.$fecha.tar.gz smf && rm -rf  smf

Una vez creado el script lo colocamos en /sbin y le damos permisos de ejecucion con chmod 700 /sbin/backup-foro

En este caso nos crearia un directorio en /var/www/copias con la fecha de ejecucion del script
con la Carpeta foro , luego para no ocupar tanto espacio comprimimos la carpeta y guradamos tambien con la fecha , el hecho de que este en un lugar donde puede leer apache no es casualidad ya que crearemos un directorio con Autentificacion

Autentificando Un directorio de apache

Para protejer el directorio de apache le pondremos una directiva al mismo archivo de configuracion de apache

por ejemplo en este caso:

Código:

<Directory /var/www/copias>
AllowOverride All
</Directory>

ahora creamos el archivo .htpasswd lo haremos con un

Código:

cd /var/www/copias
#htpasswd -c .htpasswd Admin

esto nos pide una password que devemos introducir 2 veces

y ahora solo nos falta crear el archivo .htaccess

que puede ser este

Código:

AuthName "Autentification Required"
AuthType Basic
AuthUserFile /var/www/copias/.htpasswd
require valid-user


Ejecutando el script Automaticamente

podemos añadir una entrada a crontab para que nos ejecute el script cada sabado a las 20:00

añadiendo crontab -e

lo siguiente

Código:

00 20 * * 6 /sbin/backup-foro

Una vez todo creado reiniciamos el servidor

/etc/init.d/apache restart

Responder

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

A %d blogueros les gusta esto: