Blog Reacción Estudio

¡Tu zona de aprendizaje!

Instalar Apache, PHP, MySQL y PhpMyAdmin en Linux

Cómo crear copias de seguridad para bases de datos MySQL en Linux

Es muy útil tener copias de seguridad automatizadas para nuestras bases de datos MySQL, así evitaremos perder cualquier tipo de dato de nuestros proyectos. Con un simple comando en nuestro crontab, podremos hacerlo de una forma realmente sencilla.

Primero, nos conectamos a nuestro servidor


ssh root@server_ip_or_hostname

Vamos a usar el comando ‘myslqdump‘, que se utiliza para realizar copias de seguridad de bases de datos MySQL.

mysqldump -u database_username -pdatabase_password database_name | gzip > /var/www/db_backups/mysite.com/$(date +%d-%m-%Y).gz

Debemos sustituir las siguientes variables:

database_username: username to login to database
database_password: password to login to database
database_name: name of the database to connect

Cuando introduces tu contraseña, el caracter ‘p’ debe ir junto con la cadena de texto de la contraseña.

Por ejemplo, estas son mis credenciales:

Usuario bbdd: root
Contraseña bbdd: 1234
Nombre de la base de datos: my_project_db

Nuestro comando quedará así:

mysqldump -u root -p1234 my_project_db | gzip > /var/www/db_backups/mysite.com/$(date +%d-%m-%Y).gz

El parámetro gzip indica que nuestro archivo será comprimido en formato gzip. La última parte del comando, indica el directorio donde se creará nuestra copia de seguridad, con el siguiente formato como nombre del archivo: DIA-MES-AÑO.gz

Con el comando que has generado con tus credenciales de conexión, vamos a crear un cron job en el crontab de Linux para que cree una copia de seguridad de nuestro proyecto una vez al día.

Primero, abrimos el crontab:

crontab -e

Nota: A la hora de introducir el comando en el crontab, debemos escapar los carácteres ‘%’ con ‘/’. De la siguiente forma:

$(date +\%d-\%m-\%Y).gz

Ejemplo con el comando entero escapado:

mysqldump -u database_username -pdatabase_password database_name | gzip > /var/www/db_backups/mysite.com/$(date +\%d-\%m-\%Y).gz

Creamos el cron tab:

30 4 * * * HERE_YOUR_MYSQLDUMP_COMMAND

Por ejemplo:

30 4 * * * mysqldump -u database_username -pdatabase_password database_name | gzip > /var/www/db_backups/mysite.com/$(date +\%d-\%m-\%Y).gz

Este cron job se ejecutará todos los días a las 4:30 de la mañana.

Guarda tu crontab y disfruta de tus copias de seguridad de MySQL diarias.

Fuente: http://blog.albertolabs.com/2015/11/24/how-to-auto-backups-mysql-databases-with-linux-crontab/