| Subcribe via RSS

Copias de seguridad MySQL automáticas con BASH y CRON

Abril 25th, 2007 Posted in linux, privacidad-y-seguridad

Hoy vamos a ver cómo programar la automatización de la copia de seguridad de una base de datos MySQL usando bash y cron.

Empezamos por crear un sencillo script que guarda la copia de seguridad de la base de datos comprimida en formato bz2:

#!/bin/bash
fecha=$(date +%Y%m%d)
mysqldump -uusuario -pclave base_datos > fichero_destino_$fecha.sql
bzip2 fichero_detino_$fecha.sql

Guardamos el scrip en un fichero llamado, por ejemplo ‘backup’ en la carpeta (por poner un ejemplo): /home/users/usuario/mysql_backups/. Debemos darle permisos de ejecución haciendo:

chmod +x backup

(o los permisos que creamos más convenientes en cada caso).

El fichero de destino tendrá un nombre con el siguiente formato:

fichero_detino_20070430.bz2

(Año/mes/día).

El siguiente paso es automatizar la tarea modificando el crontab. Para modificar el crontab basta con hacer:

crontab -e
0 0 * * 7 /home/users/usuario/mysql_backups/backup

Esto hace que todos los domingos a las 00:00 (hora del servidor) se haga automáticamente una copia de la base de datos. Recordemos que el formato del crontab es:

[minutos] [hora] [día] [mes] [dia_de_semana] [comando]

Notas:

  • El servidor debe tener instalado y funcionando el cron.
  • Ejecuta el script ‘backup’ a mano una vez para comprobar que genera bien la copia de seguridad.
  • Conviene comprobar, al menos una vez, que el script hace realmente las copias de seguridad con el crontab.


Entradas relacionadas

  1. ¿Son importantes las copias de seguridad?
  2. Servicio de copias de seguridad para webs y tiendas
  3. MySQL: Importar un fichero SQL cambiando el charset
  4. La inseguridad de las actualizaciones automáticas.
  5. Nideaderedes actualizado
Valoración:
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin calificar)
Loading ... Loading ...

4 Responses to “Copias de seguridad MySQL automáticas con BASH y CRON”

  1. poyete Says:

    En contrab -e , deberia ser crontab.
    Lo digo por si alguien no se percata.
    Buen tutorial sin duda.


  2. gorkau Says:

    gracias por avisar, ya está “coregido” (es que las erres están muy ricas y por eso suelo comérmelas).


  3. koxmoz kox Says:

    hola, tengo una pregunta y despues, en caso de que tenga que restaurar un backup, lo pregunto porque soy un poco novato en esto·!·!·ç

    gracias


  4. jorechp Says:

    Consulta y si deseas que el backup se ejecute todos los dias en ves del 7 se pondria otro * para que se ejecute a diario a esa hora?


Leave a Reply