Un backup que nunca se ha probado es esperanza, no estrategia. Esta guía cubre el backup automatizado, la rotación y la prueba de restore de GLPI.
Qué incluir en el backup
- Base de datos: todos los datos de GLPI (tickets, activos, usuarios, configuración)
- Archivos: subidas, documentos, plugins, logotipos y configuración personalizada
- Configuración: archivos de configuración de GLPI y del servidor (Apache/Nginx, PHP)
Script de backup automático
#!/bin/bash
BACKUP_DIR="/backup/glpi/$(date +%Y-%m-%d)"
mkdir -p "$BACKUP_DIR"
# Base de datos
mysqldump -u glpi -pSENHA --single-transaction glpi | gzip > "$BACKUP_DIR/glpi_db.sql.gz"
# Archivos
tar -czf "$BACKUP_DIR/glpi_files.tar.gz" /var/lib/glpi /etc/glpi
# Rotación: mantener últimos 30 días
find /backup/glpi -maxdepth 1 -mtime +30 -exec rm -rf {} \;
echo "Backup completado: $BACKUP_DIR"Programar en cron: 0 2 * * * /opt/scripts/backup-glpi.sh
Backup con Docker
# Base de datos
docker exec glpi-db mysqldump -u glpi -pSENHA glpi | gzip > /backup/glpi_db.sql.gz
# Volúmenes
tar -czf /backup/glpi_volumes.tar.gz /opt/glpi/data /opt/glpi/configPrueba de restore
- Levanta un entorno de prueba (Docker es ideal)
- Restaura la base de datos:
gunzip < glpi_db.sql.gz | mysql -u root glpi_test - Restaura los archivos en los directorios correspondientes
- Accede al GLPI de prueba y verifica: inicio de sesión, tickets, activos, plugins
Disaster Recovery
- RPO (Recovery Point Objective): ¿cuántos datos puedes perder? (define la frecuencia del backup)
- RTO (Recovery Time Objective): ¿cuánto tiempo para restaurar? (define dónde y cómo almacenar los backups)
- Mantén una copia offsite (otro servidor, almacenamiento en la nube)
- Documenta el procedimiento de restore paso a paso