de LinuxmanR4, 1 año han pasado desde su publicación, escrito en Bash.
Este código es una respuesta a MySQL Backup Script v2.1 de linuxmanr4
- ver diferencias
Insertar vínculo
  1. #!/bin/sh
  2. #
  3. # Este programa es software libre. Puede redistribuirlo y/o
  4. # modificarlo bajo los términos de la Licencia Pública General
  5. # de GNU según es publicada por la Free Software Foundation,
  6. # bien de la versión 2 de dicha Licencia o bien (según su
  7. # elección) de cualquier versión posterior.
  8. #
  9. # Este programa se distribuye con la esperanza de que sea
  10. # útil, pero SIN NINGUNA GARANTÍA, incluso sin la garantía
  11. # MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN
  12. # PROPÓSITO PARTICULAR. Para más detalles, véase la Licencia
  13. # Pública General de GNU.
  14. #
  15. # Copyleft 2012
  16. # Autor: Linuxman inguanzo@gmail.com http://linuxmanr4.com
  17. # versión 2.0
  18.  
  19. NAME="MySQL Backup"                                                                     # Nombre script.
  20.                                                                                                         # Descripción: Script para hacer un respaldo de todas las bases de datos de un servidor MySQL.
  21. : ${DATE:=$(date +'%Y-%m-%d')}                                          # Variable para Fecha.
  22. : ${TIME:=$(date +'%R')}                                                        # Variable para Hora.
  23. : ${WORK_DIR:=/home/usuario/directorioderespaldo/}      # Directorio de trabajo.
  24. : ${IP_SERVIDOR_MYSQL:=IP_DEL_SERVIDOR_MYSQL}           # Dirección del servidor MySQL.
  25. : ${USUARIO:=root}                                                                      # Usuario con privilegios a la base de datos. Ej. root
  26. : ${DB_PASS:=CONTRASEÑA}                                                       # La contraseña de root de nuestro servidor MySQL.
  27.  
  28.  
  29. # Antes de respaldar optimizamos y reparamos las bases de datos.
  30. clear
  31. echo "Revisando y reparando las bases de datos."
  32. echo "========================================="
  33. mysqlcheck -c -A --auto-repair -h $IP_SERVIDOR_MYSQL -u $USUARIO --password=$DB_PASS
  34.  
  35. echo
  36. echo "Optimizando las bases de datos."
  37. echo "========================================="
  38. mysqlcheck -A -o -h $IP_SERVIDOR_MYSQL -u $USUARIO --password=$DB_PASS
  39.  
  40. # Cambiamos a nuestro directorio de trabajo
  41. cd $WORK_DIR
  42.  
  43. echo
  44. echo "Iniciando el vaciado de todas las bases de datos."
  45. echo "================================================="
  46.  
  47. # Iniciamos un vaciado de todas las bases de datos del servidor.
  48. TABLES=`mysql -h $IP_SERVIDOR_MYSQL -u$USUARIO --password=$DB_PASS --execute="SHOW DATABASES;" |awk '{print($1)}' |grep -v "Database" |grep -v "information_schema"`
  49. for table in $TABLES; do
  50.         echo "Respaldando la tabla $table..."
  51.         file=$table.respaldo_`date +%Y%m%d-%H:%M:%S`.sql
  52.     echo $file
  53.         mysqldump  -h $IP_SERVIDOR_MYSQL -u"$USUARIO" -p"$DB_PASS" $table > $file
  54.         echo "Comprimiendo $file ..."
  55.         gzip $file
  56. done
  57.  
  58. echo
  59. echo "RESPALDO TERMINADO!!!"