Script para hacer un Backup de todas las Bases de Datos (Linux)

23 de Jun, 2016

Para crear una copia automatizada de todas las bases de datos creamos el siguiente script

$ sudo nano alldbdump.sh

Una vez dentro del editor agregamos

Usualmente tenemos nuestra contraseña local en blanco, asi que usamos este código

  1. #!/bin/bash
  2.  
  3. USER="root" // Usuario mysql
  4. OUTPUT="/var/www/html/tmp/db/" //Donde Guardaremos los dumps
  5.  
  6. databases=`mysql -u $USER -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
  7.  
  8. for db in $databases; do
  9. if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "m$
  10. echo "Dumping database: $db"
  11. mysqldump -u $USER --databases $db > $OUTPUT`date +%Y%m%d`.$db.sql
  12. fi
  13. done

en caso de que usemos un Password para mysql usamos el siguiente código

  1. #!/bin/bash
  2.  
  3. USER="root"
  4. PASSWORD="tu password"
  5. OUTPUT="/var/www/html/tmp/db/"
  6.  
  7. databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
  8.  
  9. for db in $databases; do
  10. if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "m$
  11. echo "Dumping database: $db"
  12. mysqldump -u $USER -p$PASSWORD --databases $db > `date +%Y%m%d`.$db.sql
  13. fi
  14. done

Luego añadimos permisos de ejecución a nuestro archivo

$ chmod +x alldbdump.sh

Y para ejecutarlo

$ ./allsbdump.sh

Lo bueno de este script es que puedes ejecutarlo a través de un cronjob para tener tus backups de todas tus BBDD