MySQL – Backup y restore III

Script para backup sencillo de motor de base de datos MySQL.

Utilizalo bajo tu propio riesgo.




 #!/bin/bash
 # Ruta en la que se guarda el log de la operacion de backup.
 logfile="/var/log/mysql.log"
 # Ruta en la que guardar los backups
 backup_dir="/root/backup/mysql"
 # Usuario
 username=""
 password=""
 # Creamos un nuevo log del proceso de backup
 rm -rf $logfile
 touch $logfile
 # Mediante esta instruccion, generamos un nombre de fichero con el dia y la hor
 timeslot=`date +%Y%m%d_%H%M`
 timeslot2=`date +%d-%m-%y`
 cd $backup_dir
 mkdir $backup_dir/$timeslot2
 cd $timeslot2
 # Iteramos a traves de la lista de bases de datos a la que el usuario tiene acceso.
 for BBDD in $( mysql -u $username --password=$password -h
 localhost -Bse 'show databases' ); do
 echo "Creando copia de seguridad de $BBDD"
 # Volcamos la base de datos en un fichero temporal
 mysqldump --user=$username --password=$password $BBDD > datos.sql
 # Y lo comprimimos en un tar.bz2 para ocupar lo mmnimo.
 #Util en bases de datos grandes.
 tar cvjf mysql-$BBDD-$timeslot.tar.bz2 *.sql
 # El nombre del fichero resultante contiene el nombre de
 la base de datos y la fecha de la copia.
 # De esta manera, cuando sea necesaria su restauracion
 sera mas sencillo de localizar.
 echo "Backup completo en la base de datos: $BBDD (mysql-$BBDD-$timeslot.tar.bz2)"
  >> $logfile
 # Borramos el fichero temporal
 rm datos.sql
 done

2 thoughts on “MySQL – Backup y restore III

  1. jors says:

    Buenas!

    Un parell d’apunts:

    1) Dump i compresió en 1 pas (perquè el tar està de més si nomès tenim 1 arxiu):
    mysqldump -u usuari -ppassword nom_de_bd | bzip2 > arxiu.sql.bz2

    2) Si volguèssis fer log a syslog, tens la comanda logger, que és més pro xD

Leave a Reply

Your email address will not be published. Required fields are marked *