You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2023-05-05 00:20:52

robertocarlos.floresh
Moderator
From: San Salvador, El Salvador
Registered: 2014-12-29
Posts: 254

Tutorial - Como hacer backup automatico de bases de datos.

¡Bienvenido al tutorial "Cómo hacer backup automático de bases de datos"!

Este tutorial te enseñará cómo crear un sistema de backup automático para tus bases de datos, lo que te permitirá proteger tus datos importantes en caso de fallas en el hardware, errores humanos o ataques cibernéticos.

Esta guía demostrará cómo hacer una copia de seguridad automática de las bases de datos MySQL utilizando el script Bash, paso a paso.

¡Prepárate para aprender todo lo que necesitas saber para asegurar tus datos y mantener la tranquilidad!



Roberto Flores
Telegram: @rcfloresh

Grupo de GLPI Español (Telegram): https://t.me/glpisp   // Discord: https://discord.gg/NXwp2UjC

Offline

#2 2023-05-05 00:22:01

robertocarlos.floresh
Moderator
From: San Salvador, El Salvador
Registered: 2014-12-29
Posts: 254

Re: Tutorial - Como hacer backup automatico de bases de datos.

Creación del directorio

Para poder llevar un orden de nuestros archivos, personalmente recomiendo crear un directorio donde este alojado nuestro archivo bash, y donde los backups (copias de seguridad sean guardados luego de ser generados), para hacer esto, debemos hacer uso de los siguientes comandos:

mkdir mysqlbackup

cd mysqlbackup/

mkdir files

Su0E6dQ.png


Roberto Flores
Telegram: @rcfloresh

Grupo de GLPI Español (Telegram): https://t.me/glpisp   // Discord: https://discord.gg/NXwp2UjC

Offline

#3 2023-05-05 00:22:09

robertocarlos.floresh
Moderator
From: San Salvador, El Salvador
Registered: 2014-12-29
Posts: 254

Re: Tutorial - Como hacer backup automatico de bases de datos.

Configuración de archivo Bash

Ahora crearemos el script bajo el nombre "backup.sh", eso lo haremos usando el editor de texto nano.

nano backup.sh

Cuando se haya agregado, debemos de agregar la linea, con esto le indicas al sistema operativo que invoque el shell especificado para ejecutar los comandos que siguen en el script

#!bin/bash

3MsYX9T.png


Ahora deberemos de crear las variables de conexión hacia la base de datos, estas son el usuario, contraseña, y base de datos a la cual haremos la copia de seguridad.

Esta información cambiará de acuerdo a la información de su servidor de base de datos

dbUser="user"
dbPass="password"
dbName="database-name"

Se debe de configurar un directorio en donde la información o copia de seguridad será almacenada. Para ello tambien debemos de declarar una variable.

backupDir="/path/to/your/backup/directory"

Para poder llevar un mejor control sobre la fecha y hora que se creo la copia de seguridad, debemos de crear una variable fecha, en donde estaremos colocando en el nombre del archivo.

dateTime=$(date +"%Y-%m-%d_%H-%M-%S")

Ahora usaremos el comando mysqldump con las credenciales base de datos para crear el archivo de nuestra copia de seguridad.

mysqldump --user=$dbUser --password=$dbPass $dbName > $backupDir/$dbName-$dateTime.sql

Para poder ahorrar espacio en nuestro servidor, se usará el siguiente comando para comprimir la copia recien realizada.

gzip $backupDir/$dbName-$dateTime.sql

Y para finalizar, con el objetivo de no almacenar copias  de más de 7 dias procederemos a buscar e eliminar.

find $backupDir-type f -name "*.gz" -mtime +7 -delete

Finalmente  tendremos  un archivo similar a  este:

#!/bin/bash

#Declaración de variables para las credenciales de bases de datos
#Nombre del Usuario
dbUser="user"
#Contraseña del Usuario
dbPass="password"
#Nombre de la base de datos
dbName="database-name"

#Creacion de variable del directorio de  archivos generados
backupDir="/home/glpi/mysqlbackup/files"

#Creación de la variable para la fecha
dateTime=$(date +"%Y-%m-%d_%H-%M-%S")

#Comando que genera la copia de seguridad
mysqldump --user=$dbUser --password=$dbPass $dbName > $backupDir/$dbName-$dateTime.sql

#Comando que comprime archivo generado
gzip $backupDir/$dbName-$dateTime.sql

#Comando que elimina archivos antiguos
find $backupDir-type f -name "*.gz" -mtime +7 -delete

addhoFr.png

Para finalizar cambiaremos los permisos del script para que este pueda ser ejecutable:

chmod +x backup.sh

txGsAie.png


Roberto Flores
Telegram: @rcfloresh

Grupo de GLPI Español (Telegram): https://t.me/glpisp   // Discord: https://discord.gg/NXwp2UjC

Offline

#4 2023-05-05 00:22:20

robertocarlos.floresh
Moderator
From: San Salvador, El Salvador
Registered: 2014-12-29
Posts: 254

Re: Tutorial - Como hacer backup automatico de bases de datos.

Ejecución de archivo bash

Para efectos de la prueba se puede ejecutar el archivo de la siguiente forma.

Dentro de la carpeta en donde creamos el archivo "backup.sh", deberá de ejecutar el siguiente comando:

sudo bash backup.sh

En la imagen primero se muestra la carpeta files vacia, luego se ejecuta el comando mencionado anteriormente, una vez finalizó revisamos los archivos creados.
Ui3T2GM.png


Roberto Flores
Telegram: @rcfloresh

Grupo de GLPI Español (Telegram): https://t.me/glpisp   // Discord: https://discord.gg/NXwp2UjC

Offline

#5 2023-05-05 00:22:29

robertocarlos.floresh
Moderator
From: San Salvador, El Salvador
Registered: 2014-12-29
Posts: 254

Re: Tutorial - Como hacer backup automatico de bases de datos.

Configuración de crontab

Si el archivo se ha creado de forma satisfactoria, ahora es momento de automatizar el proceso de backup usando crontab.

Como un pequeño recordatorio un cron se configura de la siguiente manera:

*   *   *   *   *
|   |   |    |    +    dias de la semana (0-6, donde 0 es Sunday,  o use los nombres)
|   |   |    +----    meses (1-12)
|   |   +--------    día del mes (1-31)
|   +------------   hora (0-23)
+---------------   min (0 - 59)

Para este ejemplo ejecutaremos nuestra tarea todos los días a las 2AM de la mañana, lo primero que debemos de ejecutar es el  comando:

crontab -e

Esto nos abrirá el archivo de configuración de las tareas ejecutadas por medio del cron, luego agregaremos la siguiente linea. La cual indicará que se ejecute el archivo bash previamente realizado, para la copia de seguridad, de esta forma estaremos automatizando la copia de seguridad.

0 2 * * * /path/to/backup_mysql.sh

Para efectos de prueba y dado que mi base es relativamente pequeña lo ejecutaré cada minuto, para que pueda generar unos cuantos archivos de prueba.

wkx2ynl.png

Cuando el cron  haya sido registrado nos mostrará el mensaje "crontab: installing new crontab". Una vez ejecutada nuestra tarea, estaremos viendo los archivos creados de la siguiente forma:

nwoBWKO.png


Roberto Flores
Telegram: @rcfloresh

Grupo de GLPI Español (Telegram): https://t.me/glpisp   // Discord: https://discord.gg/NXwp2UjC

Offline

#6 2023-05-05 00:22:39

robertocarlos.floresh
Moderator
From: San Salvador, El Salvador
Registered: 2014-12-29
Posts: 254

Re: Tutorial - Como hacer backup automatico de bases de datos.

Reservado...


Roberto Flores
Telegram: @rcfloresh

Grupo de GLPI Español (Telegram): https://t.me/glpisp   // Discord: https://discord.gg/NXwp2UjC

Offline

#7 2024-03-07 21:03:45

oequios
Member
From: Chile
Registered: 2024-03-07
Posts: 1

Re: Tutorial - Como hacer backup automatico de bases de datos.

Master, Agradecido por el tutorial.
Muy claro y facil de entender.
Lo unico que debes corregir es que -type debe ir separado, pasando de estar asi:

find $backupDir-type f -name "*.gz" -mtime +7 -delete

a esto:

find $backupDir -type f -name "*.gz" -mtime +7 -delete

ya que el script arroja error al tratar de eliminar los registros antiguos.

Saludos desde chile

Offline

Board footer

Powered by FluxBB