Backup e Disaster Recovery di GLPI: Guida Definitiva

Script completo per il backup automatico di GLPI (database + file), rotazione dei backup, test di ripristino e piano di disaster recovery.

Un backup che non è mai stato testato è speranza, non strategia. Questa guida tratta il backup automatizzato, la rotazione e il test di ripristino di GLPI.

Cosa includere nel backup

  • Database: tutti i dati di GLPI (ticket, asset, utenti, configurazioni)
  • File: upload, documenti, plugin, loghi e impostazioni personalizzate
  • Configurazione: file di configurazione di GLPI e del server (Apache/Nginx, PHP)

Script di backup automatico

#!/bin/bash
BACKUP_DIR="/backup/glpi/$(date +%Y-%m-%d)"
mkdir -p "$BACKUP_DIR"

# Database
mysqldump -u glpi -pSENHA --single-transaction glpi | gzip > "$BACKUP_DIR/glpi_db.sql.gz"

# File
tar -czf "$BACKUP_DIR/glpi_files.tar.gz" /var/lib/glpi /etc/glpi

# Rotazione: mantieni gli ultimi 30 giorni
find /backup/glpi -maxdepth 1 -mtime +30 -exec rm -rf {} \;

echo "Backup completato: $BACKUP_DIR"

Pianifica con cron: 0 2 * * * /opt/scripts/backup-glpi.sh

Backup con Docker

# Database
docker exec glpi-db mysqldump -u glpi -pSENHA glpi | gzip > /backup/glpi_db.sql.gz

# Volumi
tar -czf /backup/glpi_volumes.tar.gz /opt/glpi/data /opt/glpi/config

Test di ripristino

  1. Avvia un ambiente di test (Docker è ideale)
  2. Ripristina il database: gunzip < glpi_db.sql.gz | mysql -u root glpi_test
  3. Ripristina i file nelle directory corrispondenti
  4. Accedi al GLPI di test e verifica: login, ticket, asset, plugin

Disaster Recovery

  • RPO (Recovery Point Objective): quanta perdita di dati è accettabile? (definisce la frequenza del backup)
  • RTO (Recovery Time Objective): quanto tempo per il ripristino? (definisce dove e come conservare i backup)
  • Mantieni una copia offsite (altro server, cloud storage)
  • Documenta la procedura di ripristino passo per passo

Domande Frequenti

Backup del database (mysqldump) + backup delle directory dei dati (/var/lib/glpi), della configurazione (/etc/glpi) e dei plugin. Automatizza con cron e rotazione di 30 giorni.

Database: giornaliero. File: settimanale (cambiano meno). Backup incrementali durante il giorno se il volume di ticket è elevato.

Ripristina periodicamente in un ambiente di test. Un backup mai testato è tanto inefficace quanto l'assenza di backup. Pianifica test trimestrali.

Sì. Fai il backup dei volumi Docker con docker cp o rsync delle directory montate. Il database richiede un mysqldump coerente.

Hai bisogno di aiuto?