Advertisement
sergiomeneses

MySql DB Backup

Jan 13th, 2014
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.61 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3.  
  4. # Nombre script.
  5. NAME="Respaldo MySQL"      
  6. #Descripción: Script para hacer un respaldo de todas las bases de datos de un servidor
  7.  
  8. # Variable para Fecha.
  9. : ${DATE:=$(date +'%Y-%m-%d')}                         
  10. # Variable para Hora.
  11. : ${TIME:=$(date +'%R')}
  12. # Directorio de trabajo.
  13. : ${WORK_DIR:=/tmp/respaldo_db}
  14. # Dirección del servidor MySQL
  15. : ${IP_SERVIDOR_MYSQL:="La ip de tu server"}
  16. # usuario DB               
  17. : ${USUARIO:="usuario db"}
  18. # La contraseña de root de nuestro servidor MySQL.                                
  19. : ${DB_PASS:="contraseña de mysql"}
  20.  
  21. #Antes de respaldar optimizamos y reparamos las bases de datos.
  22. clear
  23. echo "Iniciando optimización de las bases de datos."
  24. echo "============================================="
  25. mysqlcheck -c -A --auto-repair -o -h $IP_SERVIDOR_MYSQL -u $USUARIO -p"$DB_PASS"
  26. #mysqlcheck -u $USUARIO -p $DB_PASS --auto-repair --optimize --all-databases
  27. #mysqlcheck -A -o --auto-repair -u $USUARIO -p $DB_PASS
  28.  
  29. # Cambiamos a nuestro directorio de trabajo
  30.  
  31. mkdir $WORK_DIR
  32. cd $WORK_DIR
  33.  
  34. echo "Iniciando vaciado de todas las bases de datos."
  35. echo "==============================================="
  36.  
  37. # Iniciamos un vaciado de todas las bases de datos del servidor.
  38. TABLES=`mysql -h $IP_SERVIDOR_MYSQL -u$USUARIO --password=$DB_PASS --execute="SHOW DATABASES;" |awk '{print($1)}' |grep -v "Database" |grep -v "information_schema"`
  39. for table in $TABLES; do
  40.     echo "Respaldando la tabla $table..."
  41.     file=$table.respaldo_`date +%Y%m%d`.sql
  42.     mysqldump  -h $IP_SERVIDOR_MYSQL -u"$USUARIO" -p"$DB_PASS" $table > $file
  43.     echo "Comprimiendo $file ..."
  44.     gzip $file
  45. done
  46.  
  47. echo ""
  48. echo "RESPALDO TERMINADO!!!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement