Advertisement
sergio_educacionit

mariadbdump-v2.sh

Feb 10th, 2025 (edited)
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.78 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. timestamp=$(date +%s)
  4.  
  5.  
  6. # ejecuta el script '/etc/mariadbdump.con' que solo tiene variales:
  7. #
  8. # backupdir="/var/backups/mariadb"
  9. # backupserver=192.168.0.97
  10.  
  11. source /etc/mariadbdump.conf
  12.  
  13.  
  14. # Verficiar el nivel de usuario, para
  15. # realizar el volcado se debe tener privilegios de 'root'
  16. # La id de usuario para 'root' es '0'.
  17. # '-ne' not equal
  18.  
  19. if [ $UID -ne 0 ];then
  20.  
  21.     # se envia la salida al 'standar error'
  22.     echo "Debe ser usuario 'root' para ejecutar este programa" >&2
  23.     # se sale del script con exit status 1
  24.     exit 1
  25.    
  26. fi
  27.  
  28. mariadb_dump () {
  29.  
  30.     # una variable local solo existe dentro de la funcion
  31.     # puede llamarse igual que otras variables de fuera
  32.     # pero sigue siendo independiente.
  33.  
  34.     local timestamp=$1
  35.  
  36.     # un retorno es un exit status pero de funciones
  37.     # con el operador '||' (or) si el volcado termina con
  38.     # errores a funcion retorna '1'
  39.     # de lo contrario retorna '0'
  40.  
  41.     echo 'Volcado de bases de datos (local)...'
  42.  
  43.     mysqldump --all-databases > ${backupdir}/${timestamp}_mariadb.sql || return 1
  44.  
  45.  
  46.     return 0
  47. }
  48.  
  49.  
  50.  
  51. test_conn () {
  52.  
  53.  
  54.     ping -c 1 $backupserver > /dev/null 2>&1|| return 1
  55.  
  56.     return 0
  57.  
  58. }
  59.  
  60.  
  61. backup_remoto () {
  62.  
  63.     echo "rsync -a $backupdir ${backupuser}@${backupserver}:/mariadbbkp/"
  64. }
  65.  
  66.  
  67. if [ -d "$backupdir" ]; then
  68.    
  69.     # el programa termina si la funcion retorna '1'
  70.     mariadb_dump $timestamp && ls -1 $backupdir || { echo "No se pudo hacer volcado"; exit 1; }
  71. else
  72.     mkdir -v -p $backupdir || { echo "No se pudo crear ${backupdir}."; exit 1; }
  73.     mariadb_dump $timestamp && ls -1 $backupdir || { echo "No se pudo hacer volcado"; exit 1; }
  74.  
  75. fi
  76.  
  77.  
  78.  
  79.  
  80. echo "Realizando backup remoto..."
  81.  
  82. test_conn || { echo "El servidor '$backupserver' no responde. Se sale." ; exit 1; }
  83.  
  84.  
  85. backup_remoto
  86.  
  87. echo "Fin del script."
  88.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement