Inicio > Linux, Scripts > Script para hacer un backup de una base de datos remota de Mysql

Script para hacer un backup de una base de datos remota de Mysql

jueves, 17 marzo 2011

Hola,

hace tiempo ya os comenté como podemos hacer un backup de una base de datos de MySQL con mysqldump. Usando ese comando podemos hacer un script para automatizar las copias de seguridad de mysql. En mi caso, estoy usando este script para automatizar  el backup comprimido de la base de datos del blog desde mi servidor en casa. Así me aseguro de tener un backup actualizado de la base de datos del blog todos los días de madrugada.


#!/bin/bash

#Datos de configuración de acceso a la Base de datos
host=nombre_ip_host
db=nombre_base_de_datos
user=nombre_usuario_base_de_datos
pass=contraseña

date_backup=`date +%Y-%m-%d`
file_backup=${date_backup}_backup_blog.zip
path_backup=/home/backups/blog/backup_sql/

echo "##################################################################################"
echo Copia de seguridad de la base de datos de $host
echo "#################################################################################"

#Se comprueba que no existe el archivo de backup con el mismo nombre, si existe se elimina
if [ -f $file_backup ]
then
echo El archivo $1 ya existe, se elimina
rm $file_backup
fi

echo Generando backup de la base de datos en $path_backup$file_backup

mysqldump --opt --host=$host --password=$pass --user=$user $db | gzip -c> $path_backup$file_backup

echo "###################################################################################"

Ahora solo queda añadir una tarea al cron que ejecute el script a determinada hora. Solo tenéis que cambiar los datos de acceso y path por los vuestros.

Hay que tener en cuenta que el script solo funciona si el servidor remoto de MySQL acepta conexiones desde otras ip que no sea localhost. En mi caso, el hosting está configurado para que acepte conexiones a MySQL solo desde la ip de mi casa.

Podéis descargar el script aquí.

Categorías: Linux, Scripts Etiquetas: , ,
  1. Alejandro
    jueves, 17 noviembre 2011 a las 7:57 pm

    En mi caso yo utilizo MySQLBackupFTP (http://mysqlbackupftp.com). La version gratuita permite programar backups para 2 bases de datos. Si tienes instalado phpMyAdmin en tu servidor pero no tienes permiso puedes utilizar esta herramienta. Se conecta a traves de phpMyAdmin para realizar los backups y los puede enviar a un servidor FTP remoto.

  2. Luis
    jueves, 17 marzo 2011 a las 10:55 pm

    @tolgalen
    Ya, aunque me temo que mi hosting no lo va permitir 😦

  3. jueves, 17 marzo 2011 a las 10:50 pm

    @Luis

    Así es, es necesario que el puerto 3306 (o el que tengan configurado) esté abierto a internet. La forma de hacerlo dependerá de tu hosting, si es que te lo permite. En mi caso, bluehost, lo permiten aunque por motivos de seguridad está configurado para que solo permita conexiones desde la ip de mi casa.

  4. Luis
    jueves, 17 marzo 2011 a las 10:44 pm

    Hola,

    el script me interesa para un foro que gestiono, por lo que dices es necesario que mysql esté abierto a internet, ¿no?. ¿Como puedo hacerlo?

  1. No trackbacks yet.
Los comentarios están cerrados.