Respaldo MySQL · 4 min read · Dec 10, 2025
Configurar Rsnapshot, Archivado de Instantáneas y Respaldo de Bases de Datos MySQL en Debian
Configurar Rsnapshot, Archivado de Instantáneas y Respaldo de Bases de Datos MySQL en Debian
Por Nedim Hadzimahmutovic < [email protected] >
Este tutorial te mostrará cómo instalar y configurar Rsnapshot, habilitar el archivado de instantáneas y cómo respaldar bases de datos MySQL en Debian.
Instala el programa usando la utilidad apt-get:
apt-get install rsnapshotEdita el archivo de configuración:
nano /etc/rsnapshot.confEstablece snapshot_root a la ruta donde deseas mantener las copias de seguridad:
snapshot_root /var/cache/rsnapshot/Configura la lista de directorios/archivos a respaldar.
backup /etc/ localhost/Intervalos de Respaldo
Esta sección del archivo de configuración se utiliza solo para definir etiquetas para los intervalos y cuántas instantáneas de cada nivel mantener. La frecuencia con la que se realizan las instantáneas se configura y se ejecuta a través de cron. La palabra clave intervalo es seguida por una etiqueta alfanumérica, seguida de un número, que significa cuántos intervalos (instantáneas) mantener. Las etiquetas de intervalo deben ser únicas y en orden ascendente, el intervalo más pequeño debe listarse primero.
En el siguiente ejemplo, después de 6 instantáneas “horarias” se elimina la más antigua “horaria”. La entrada superior (en este caso “horaria”) se copia de la fuente, mientras que las entradas restantes simplemente enlazan a la última instantánea de un nivel superior.
En otras palabras, para mantener seis copias de seguridad al día (intervalo de cuatro horas), siete copias de seguridad diarias (una semana) y cuatro copias de seguridad semanales (un mes), especifica:
interval hourly 6
interval daily 7
interval weekly 4Las etiquetas de intervalo “horario”, “diario”, “semanal” pueden cambiarse para adaptarse a tus necesidades, por ejemplo “díasatrás”, “semanasatrás” y “mesesatrás”.
Cada vez que se ejecuta rsnapshot hourly, manualmente o por cron, creará una nueva instantánea, rotará las antiguas y retendrá las 6 más recientes (hourly.0 - hourly.5).
Puntos de Respaldo
Ejemplo de un punto de respaldo dentro del archivo de configuración:
backup /etc/ localhost/ Los puntos de respaldo comienzan con la palabra backup, después de /etc/ está la ruta completa del directorio que se respaldará y localhost es un directorio dentro de snapshot_root. Puedes cambiar localhost por cualquier cosa que asocie al servidor, como el nombre de dominio completamente calificado del servidor.
Además de las rutas completas en el sistema de archivos local, también puedes respaldar sistemas remotos usando rsync sobre ssh. Si tienes ssh instalado y habilitado (a través del parámetro cmd_ssh), puedes especificar una ruta como:
backup [email protected]:/etc/ example.com/Ten en cuenta que debes tener habilitados los inicios de sesión basados en clave para el usuario root en example.com, sin frases de contraseña para que esto funcione correctamente./
Scripts de Respaldo
Puedes encontrar muchos ejemplos en el directorio utils que en Debian se encuentra en /usr/share/doc/rsnapshot/examples/utils/.
Los scripts de respaldo se ejecutan con cada intervalo más bajo.
Ejecutando Respaldos a Través de Cron
El archivo cron se encuentra en
/etc/cron.d/rsnapshotEl contenido predeterminado:
# 0 */4 * * * root /usr/bin/rsnapshot hourly
# 30 3 * * * root /usr/bin/rsnapshot daily
# 0 3 * * 1 root /usr/bin/rsnapshot weekly
# 30 2 1 * * root /usr/bin/rsnapshot monthly
Debes descomentar líneas para activar los respaldos.
El primero le dice a cron que ejecute cron-apt cada 4 horas, lo que coincide con la configuración de intervalo horario en el rsnapshot.conf.
Prueba de configuración:
Cada vez que realices un cambio en el archivo de configuración, haz una prueba de configuración:
rsnapshot configtestTEN EN CUENTA LAS SIGUIENTES REGLAS:
- El archivo de configuración requiere tabulaciones entre elementos, los espacios representan argumentos para scripts
- Los directorios requieren una barra diagonal al final, ejemplo:
correcto: /home/
incorrecto: /home
Archivando instantáneas
cp /usr/share/doc/rsnapshot/examples/utils/rsnaptar /usr/local/bin/Asegúrate de que tus scripts de respaldo sean propiedad de root y no sean escribibles por nadie más.
chown root.root /usr/local/bin/rsnaptar
chmod o-w /usr/local/bin/rsnaptarEdita el script y establece las rutas de los directorios:
nano /usr/local/bin/rsnaptarEstablece TAR_DIR a la ruta donde se archivará la instantánea, y SNAPSHOT_DIR a donde se encuentra la instantánea diaria:
TAR_DIR="/home/user/dvd_backup"
SNAPSHOT_DIR="/var/cache/rsnapshot/daily.0"Ten en cuenta que el ciclo horario debe completarse para que se cree la instantánea diaria.
Este script admite la encriptación gpg de archivos, para deshabilitarlo comenta la siguiente línea en /usr/local/bin/rsnaptar:
GPG="/usr/bin/gpg"Programando Ejecución a Través de Cron
nano /etc/cron.daily/rsnaptarAgrega:
#!/usr/bin/env bash
/usr/local/bin/rsnaptar [email protected]Notas:
- este tutorial no utiliza la opción GPG para encriptar archivos, si esto es una necesidad, puedo actualizar el tutorial para incluir la encriptación de archivos para mejor seguridad,
- por defecto, el script se ejecuta de forma independiente, pero podría modificarse para ejecutarse como un backup_script a través de rsnapshot mismo,
Rsnapshot: Respaldando Bases de Datos MySQL
Instala mysql-client si no está instalado, esto proporcionará la utilidad mysqldump:
# apt-get install mysql-client# cp /usr/share/doc/rsnapshot/examples/utils/backup_mysql.sh /usr/local/bin/Asegúrate de que tus scripts de respaldo sean propiedad de root y no sean escribibles por nadie más.
chown root.root /usr/local/bin/backup_mysql.sh
chmod o-w /usr/local/bin/backup_mysql.shEste script está diseñado solo para respaldar todas las bases de datos en un solo archivo.
Edita el script:
nano /usr/local/bin/backup_mysql.shReemplaza
/usr/bin/mysqldump --all-databases > mysqldump_all_databases.sqlcon
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases > mysqldump_all_databases.sqlSi necesitas volcar una sola base de datos, usa la línea a continuación:
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf DATABASE > DATABASE.SQLAgregar Script a Rsnapshot
Edita la configuración de rsnapshot:
nano /etc/rsnapshot.confBajo PUNTOS DE RESPALDO / SCRIPTS agrega lo siguiente:
backup_script /usr/local/bin/backup_mysql.sh localhost/mysqldump/Prueba la configuración:
rsnapshot configtestRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.