[Como] 2 Formas de Hacer Backup Remoto a Bases de Datos Mysql

script mejorado vía skamasle.com respaldar todas las bases de datos del servidor y transferirlas:

Script – Respaldar bases de datos Mysql y Transferirlas por FTP o SSH [SK-ServerUP]
———————–
———————–
———————–
———————–
Hoy les traigo un pequeño tutorial sobre como hacer backup remoto a nuestra base de datos en MySQL, aunque más que tutorial son dos scripts que hay que poner en el Cron para hacer el backup y listo.

El primer script es de blog.secaserver.com, una excelente explicación sobre sobre como hacer backups de mysql en un servidor remoto cada media hora.

El script esta hecho en bash y es este: ( pueden ver más info en el enlace de seca server que deje arriba ):

Script en Bash para Hacer Backup de Mysql

#!/bin/bash
# Scripts to create mysql backup every half and hour

# Confiration value
mysql_host=»»
mysql_database=»»
mysql_username=»»
mysql_password=»
backup_path=/backup/mysql
expired=3 #how many days before the backup directory will be removed

today=`date +%Y-%m-%d`

if [ ! -d $backup_path/$today ]
then
mkdir -p $backup_path/$today
else
/usr/bin/mysqldump -h $mysql_host -u $mysql_username -p$mysql_password $mysql_database > $backup_path/$today/$mysql_database-`date +%H%M`.sql
fi

# Remove folder which more than 3 days
find $backup_path -type d -mtime +$expired | xargs rm -Rf

Que hace el script ?

En resumen se conecta a la base de datos cada media hora, y hace un respaldo, cada respaldo tiene como nombre el dia y la hora en el que se hizo, los backups los deja durante 3 días , o sea que si tienen más de 3 días en el server los va borrando.

Los datos más importantes para configurar son estos:

mysql_host="IP o host"
mysql_database="nombre de la BD"
mysql_username="usuario de la bd"
mysql_password='contraseña de la bd'
backup_path=/backup/mysql # esta es la ruta donde se guardará el backup
expired=3 # y este es el tiempo que duran los backups en el server antes de borrarse ( en días )

Básicamente es eso, ahora bien el según script es de dreamingbytes.com un poco más sencillo que el de secaserver y además de eso hecho en python.

Script en Python para Hacer Backup Remoto de Mysql

#!/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)

En este script lo que hay que cambiar son los datos de la linea: mysqldump -h [nuestro.servidor.com_o_IP] -u [usuario] -p[password] [base_de_datos]

Y también la ruta en donde se guardará el backup /home/javi/backups/Servidor/»+file+».sql

El proceso es muy similar al del script de secaserver, se conecta al servidor remoto y hace un backup, el nombre lo define la fecha y la hora en la que se hace el backup.

Eso es todo en cuanto a los backups, es bastante sencillo, aunque falta algo por comentar y es como se define cuando se hacen los backups, eso lo definimos nosotros, tenemos que guardar el script en el servidor con algún nombre, por ejemplo backup-skamasle, y luego crear un cron.

En el caso del script de secaserver, un backup cada media hora:

*/30 * * * * root /bin/sh /home/scripts/backup-skamasle

O si lo queremos una vez al día, a las 12AM

0 0 * * * root /bin/sh /home/scripts/backup-skamasle

O cada hora al minuto 15

15 * * * * root /bin/sh /home/scripts/backup-skamasle

En caso de que usemos el sistema de dreamingbytes tenemos que crear un cron similar solo que en vez de /bin/sh usaremos /usr/bin/python y el fichero en donde guardemos el script ha de llamarse backup-skamasle.py como sea, pero con extensión .py, y se puede programar a cualquier hora. Continuar leyendo «[Como] 2 Formas de Hacer Backup Remoto a Bases de Datos Mysql»