Hacer un Backup de MySQL por SSH (Exportar)
Con el siguiente comando puedes hacer / exportar un backup de una base de datos mediante SSH
mysqldump --host=localhost --user=db_user --password=pass db_name > db_name.sql
Si el comando anterior no te ha funcionado, puedes probar con este otro.
Ojo! en este segundo comando la contraseña va pegada a la -p
mysqldump -h localhost -u db_user -ppass db_name > db_name.sql
En caso que tengas acceso root, también puedes hacer el backup así:
mysqldump --single-transaction db_name > db_name.sql
Restaurar un Backup de MySQL por SSH (Importar)
Con el siguiente comando puedes restaurar / importar un backup de una base de datos mediante SSH
mysql --host=localhost --user=db_user --password=pass db_name < db_name.sql
Si el comando anterior no te ha funcionado, puedes probar con este otro.
Ojo! en este segundo comando la contraseña va pegada a la -p
mysql -h localhost -u db_user -ppass db_name < db_name.sql
En caso que tengas acceso root, también puedes hacer el backup así:
mysql -f db_name < db_name.sql
Backup automático y envío por FTP a un servidor remoto
Introduce este script en un cron para ejecutar un backup periódico de tu base de datos y enviar la copia a un servidor FTP remoto:
Debes modificar los valores marcados en negrita por los tuyos propios.
#! /bin/bash export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" ## CONFIGURA LOS DATOS DE CONEXION A LA BASE DE DATOS ## SQL_HOST='localhost' SQL_USER='Usuario-SQL' SQL_PASS='Pass-SQL' SQL_DDBB='Nombre-SQL' ## CONFIGURA LOS DATOS DE CONEXION AL FTP DE BACKUP ## FTP_HOST='Servidor-FTP' FTP_USER='Usuario-FTP' FTP_PASS='Pass-FTP' ## CONFIGURA EL DIRECTRIO DE BACKUP LOCAL Y LOS DIAS DE RETENCION DE FICHEROS## BackupDestination='/backup' Retention='5' #dias ## NO EDITES NINGUN VALOR A PARTIR DE AQUI ## FECHA=`date +%Y%m%d_%H-%M` echo Detectando Fecha: ${FECHA} cd ${BackupDestination} echo Accediendo al directorio de backup: ${BackupDestination} echo Ejecutando mysqldump mysqldump --host=${SQL_HOST} --user=${SQL_USER} --password=${SQL_PASS} ${SQL_DDBB} > ${SQL_DDBB}-${FECHA}.sql echo Comprimiendo backup tar cvzf ${SQL_DDBB}-${FECHA}.tar.gz ${SQL_DDBB}-${FECHA}.sql echo Backup comprimido: ${SQL_DDBB}-${FECHA}.tar.gz echo Eliminando backup sin comprimir: ${SQL_DDBB}-${FECHA}.sql rm -rf ${SQL_DDBB}-${FECHA}.sql echo Eliminando backups con mas de ${Retention} dias find ${BackupDestination} -type f -ctime +${Retention} | grep ${SQL_DDBB}- | xargs rm -rf echo Proceso finalizado echo Enviando al servidor FTP ftp -in << EOF open ${FTP_HOST} user ${FTP_USER} ${FTP_PASS} bin verbose prompt put ${SQL_DDBB}-${FECHA}.tar.gz bye EOF echo Transferencia FTP finalizada. echo FIN del trabajo.