Backup remoto de bases de datos MySQL con mysqldump

Las bases de datos guardan información fundamental para nuestro negocio o actividad, y un aspecto a tener muy en cuenta es realizar copias de seguridad o backups regulares tanto de los datos que contienen como de su estructura.

Las webs, como aplicaciones que son, no están exentas de necesitarlas, pues ya sea por ataques o por desgracias físicas de los servidores en las que están alojadas, no podemos permitirnos dejar a nuestros usuarios o visitantes sin servicio, así que es necesario contar con una buena política de copias de seguridad.

Si tenemos una web, blog, servicio online, etc y utilizamos una base de datos MySQL podemos emplear diferentes mecanismos para realizar la copia de seguridad, por ejemplo entrar enphpMyAdmin, si disponemos de él, y hacerla manualmente. Pero si queremos ahorrarnos entrar en este administrador de bases de datos y nuestra máquina ya tiene MySQL instalado, podemos emplear el siguiente comando para crear un archivo en nuestra máquina con la copia de seguridad de una base de datos MySQL de un servidor remoto:

mysqldump -h [nuestro.servidor.com_o_IP] -u [usuario] -p[password] [base_de_datos] > archivo_backup.sql

Este comando nos creará el archivo archivo_backup.sql con el contenido de la base de datos que le hayamos indicado. Cuidado, entre -p y [password] no hay ningún espacio.

Seguro que os preguntaréis para qué puede servir ésto; pues bien, la respuesta es sencilla: paraautomatizar el proceso y poder programar una o varias copias de seguridad diariamente,ejecutando mediante Cron un script programado en Python como el que se muestra a continuación:

#!/usr/bin/python

import datetime
import os

command = "mysqldump -h [nuestro.servidor.com_o_IP] -u [usuario] -p[password] [base_de_datos]"

# Objeto HOY
today = datetime.date.today()
# Formatea como YYYYMMDD
fecha = today.strftime("%Y%m%d")

# Fichero de salida
file = "backup_Servidor_"+fecha

command = command+" > /home/javi/backups/Servidor/"+file+".sql"

os.system(command)

Con un script parecido al anterior, y programado para que se ejecute diariamente, tendremos una buena política de copias de seguridad, generando cada día un archivo de texto con el sufijo de la fecha en su nombre y con todo el contenido de la base de datos, tanto de su estructura de tablas como de los registros que éstas contengan.

Únete a la conversación

4 comentarios

  1. algo que comentar es que si tienes un hosting y usas cpanel, tienes que activar el acceso remoto con la ip – hay varias paginas que te dicen que ip tienes, no confundir con 127.0.0.0 o con 192.192.168.*.* –

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: