Script para hacer un backup de una base de datos remota de Mysql
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í.
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.
@tolgalen
Ya, aunque me temo que mi hosting no lo va permitir 😦
@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.
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?