Comunidad de diseño web y desarrollo en internet online

Respaldar bases de datos Mysql con Shell Script

Buenas! hoy les traigo un tutorial muy simple. Es un código Shell Script, que al ejecutarlo se conectará a Mysql y creará un archivo .gz de respaldo para cada base de datos que se encuentre en nuestro servidor Mysql. Este script nos puede ahorrar muchas horas de trabajo a la hora de respaldar todas las bases de datos que tengamos en nuestro Mysql.




Creamos nuestro archivo



Nos ubicamos en donde queremos que se guarden los archivos de respaldo en nuestro directorio y creamos un archivo mysqlrespaldo.sh

Código :

nano mysqlrespaldo.sh


Código Shell Script


Código :

#!/bin/bash

#Configuración de variables de entorno
MYSQL='/usr/bin/mysql'
MYSQLDUMP='/usr/bin/mysqldump'
DUMPOPTS='--opt --hex-blob --skip-extended-insert'
DATEFORMAT='%Y%m%d-%H%M%S'  # See man date

#configuración de usuario, clave y directorio
user=USUARIOMYSQL
pass=CLAVEDENUESTROMYSQL
dir='.'

while getopts 'u:d:p:h' OPTION
do
    case $OPTION in
        u)
            user="$OPTARG"
            ;;
        d)
            dir="$OPTARG"
            ;;
        p)
            pass="$OPTARG"
            ;;
        h|?)
            printf  "Usage: %s: [-u USER] [-p PASSWORD] [-d DIRECTORY]\n" \
                $(basename $0) >&2
            exit 2
            ;;
    esac
done
if [ -z "$pass" ]
then
    read -s -p "password: " pass ; printf "%b" "\n"
fi

#Se obtienen los nombre de las bases de datos
databases=`$MYSQL -u$user -p$pass --skip-column-names -e'SHOW DATABASES'`

# Se escribe un archivo comprimido del respaldo de cada base de datos y organizándolos por fecha de ejecución del respaldo
for db in $databases; do
    filename=`date +"$dir/$db-$DATEFORMAT.sql.gz"`
    echo "creating $filename"
    $MYSQLDUMP $DUMPOPTS -u$user -p$pass --database $db \
        | gzip -9 > $filename
done




Restaurar respaldo de Mysql



Para restaurar algún respaldo hecho con este script, sólo se debe descomprimir el archivo .gz y ejecutar el siguiente código por consola.

Código :

gunzip NombredelArchivodeBasedeDatos.sql.gz

Con esto descomprimimos el archivo y nos da como resultado un archivo .sql que vamos a utilizar más adelante para restaurar la misma.

Restaurar la base de datos


Código :

mysql -u USUARIOBD -p NOMBREBASEDEDATOS < NombredelArchivodeBasedeDatos.sql

Espero que esto les ayude un poco en su día a día.
Feliz día

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate