En la actualidad, las bases de datos se han vuelto una parte crucial de muchas empresas y organizaciones. Es por eso que la implementación de un plan de copias de seguridad es importante para garantizar la continuidad del negocio en caso de un desastre o pérdida de datos. En este artículo, nos enfocaremos en las copias de seguridad automáticas para bases de datos MariaDB y MySQL.
Antes de profundizar en las copias de seguridad automáticas, es importante comprender lo que son estas bases de datos y por qué son importantes. Tanto MariaDB como MySQL son sistemas de gestión de bases de datos relacionales (RDBMS) de código abierto que se utilizan en todo el mundo para almacenar y administrar datos empresariales críticos. Estas bases de datos son populares debido a su facilidad de uso, escalabilidad y flexibilidad.
Ahora, hablemos de la importancia de las copias de seguridad automáticas para las bases de datos MariaDB y MySQL. Las copias de seguridad son una forma de proteger los datos críticos de la empresa. Una copia de seguridad es una copia de los datos originales que se pueden utilizar en caso de pérdida o corrupción de datos. Las copias de seguridad automáticas permiten a las empresas crear copias de seguridad regularmente sin la necesidad de intervención humana.
Una copia de seguridad automática para MariaDB y MySQL puede ser programada para ejecutarse en un intervalo de tiempo regular. Por ejemplo, una copia de seguridad puede programarse para ejecutarse todos los días a la medianoche. Esto garantiza que siempre se tenga una copia de seguridad reciente en caso de una pérdida de datos.
Para realizar una copia de seguridad automática, se deben seguir algunos pasos. Primero, se debe crear un script de copia de seguridad que defina el proceso de copia de seguridad. Este script debe incluir la ubicación de la base de datos, el nombre de la base de datos y la ruta donde se almacenará la copia de seguridad.
Una vez creado el script, se debe configurar un cronjob en el sistema operativo para ejecutar el script de copia de seguridad en el intervalo de tiempo deseado. El cronjob es una herramienta que permite programar tareas repetitivas en un sistema operativo.
Es importante tener en cuenta que la copia de seguridad automática no es una solución completa para la protección de datos. Además de las copias de seguridad automáticas, también es importante implementar medidas de seguridad adicionales, como la protección de la base de datos con contraseñas y la encriptación de datos.
En resumen, las copias de seguridad automáticas son importantes para garantizar la continuidad del negocio en caso de una pérdida de datos. La implementación de copias de seguridad automáticas para bases de datos MariaDB y MySQL es un proceso sencillo que puede ser automatizado mediante la configuración de cronjobs. Además de las copias de seguridad automáticas, es importante implementar medidas de seguridad adicionales para proteger los datos empresariales críticos.
COMO LO CONFIGURAMOS PARA QUE TODO SE ENVIE POR EMAIL.
#!/bin/bash
MYSQL_USER="USUARIO BD"
MYSQL_PASSWORD="CLAVE DB"
SMTP_AUTH_USER="USUARIO CORREO"
SMTP_AUTH_PASS="CLAVE CORREO"
SMTP_SERVER="SERVIDOR DE CORREO"
SMTP_PORT="587"
SENDER="REMITENTE"
RECIPIENT="A DONDE LO MANDAMOS"
BACKUP_DIR="/tmp"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
# Obtener una lista de todas las bases de datos disponibles
DATABASES=$(mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)")
# Iterar sobre cada base de datos y crear una copia de seguridad
for DATABASE in $DATABASES; do
BACKUP_FILE="${BACKUP_DIR}/${DATABASE}_${TIMESTAMP}.sql"
mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $DATABASE > $BACKUP_FILE
done
# Comprimir todos los archivos de copia de seguridad en un archivo ZIP
ZIP_FILE="${BACKUP_DIR}/all_databases_${TIMESTAMP}.zip"
zip -j $ZIP_FILE ${BACKUP_DIR}/*.sql
SENDER_ASCII=$(echo $SENDER | idn2)
RECIPIENT_ASCII=$(echo $RECIPIENT | idn2)
# Enviar el archivo de respaldo por correo electrónico
swaks --to $RECIPIENT --from $SENDER --tls --server $SMTP_SERVER --port $SMTP_PORT --auth-user $SMTP_AUTH_USER --auth-password $SMTP_AUTH_PASS2 --body "Copias enviadas de las bases de datos" --header "Subject: COPIA DE SEGURIDAD REALIZADA EL DIA $TIMESTAMP" --attach "$ZIP_FILE"
# Eliminar los archivos de copia de seguridad individuales y el archivo ZIP
rm ${BACKUP_DIR}/*.sql
rm $ZIP_FILE
Solo nos queda añadir la tarea al cron
Para editar el archivo crontab utilizando el editor de texto Nano, puedes seguir los siguientes pasos:
- Abre la terminal en tu sistema operativo.
- Escribe el comando
crontab -e
y presiona Enter. Esto abrirá el archivo crontab en el editor por defecto (normalmente Vim o Vi). - Para cambiar el editor por defecto, puedes escribir el siguiente comando en la terminal:
export VISUAL=nano; crontab -e
. Esto establecerá Nano como el editor de texto predeterminado para editar crontab. - Ahora deberías ver la lista de tareas programadas en el archivo crontab. Usa las flechas del teclado para desplazarte hacia abajo hasta la tarea que deseas editar.
- Una vez que hayas seleccionado la tarea, presiona la tecla
i
para entrar en el modo de edición. - Realiza los cambios necesarios en la tarea programada utilizando el teclado.
- Cuando hayas terminado de hacer los cambios, presiona la tecla
Esc
para salir del modo de edición. - Para guardar los cambios y salir del editor, escribe
:wq
y presiona Enter.
¡Listo! Ahora has editado exitosamente el archivo crontab utilizando el editor de texto Nano.
export VISUAL=nano; crontab -e
#esto realiza la tarea cada 8 horas
0 */8 * * * /bin/bash /home/user/backup.sh