Backup e Disaster Recovery do GLPI: Guia Definitivo

Script completo de backup automático do GLPI (base de dados + ficheiros), rotação de backups, teste de restore e plano de disaster recovery.

Um backup que nunca foi testado é esperança, não estratégia. Este guia cobre o backup automatizado, a rotação e o teste de restore do GLPI.

O que incluir no backup

  • Base de dados: todos os dados do GLPI (tickets, ativos, utilizadores, configurações)
  • Ficheiros: uploads, documentos, plugins, logótipos e configurações personalizadas
  • Configuração: ficheiros de configuração do GLPI e do 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 dados
mysqldump -u glpi -pSENHA --single-transaction glpi | gzip > "$BACKUP_DIR/glpi_db.sql.gz"

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

# Rotação: manter últimos 30 dias
find /backup/glpi -maxdepth 1 -mtime +30 -exec rm -rf {} \;

echo "Backup concluído: $BACKUP_DIR"

Agendar no cron: 0 2 * * * /opt/scripts/backup-glpi.sh

Backup com Docker

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

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

Teste de restore

  1. Monte um ambiente de teste (Docker é ideal)
  2. Restaure a base de dados: gunzip < glpi_db.sql.gz | mysql -u root glpi_test
  3. Restaure os ficheiros nos diretórios correspondentes
  4. Aceda ao GLPI de teste e verifique: login, tickets, ativos, plugins

Disaster Recovery

  • RPO (Recovery Point Objective): quanta perda de dados é aceitável? (define a frequência do backup)
  • RTO (Recovery Time Objective): quanto tempo para restaurar? (define onde e como armazenar os backups)
  • Mantenha uma cópia offsite (outro servidor, armazenamento na nuvem)
  • Documente o procedimento de restore passo a passo

Perguntas Frequentes

Backup da base de dados (mysqldump) + backup dos diretórios de dados (/var/lib/glpi), configuração (/etc/glpi) e plugins. Automatize com cron e rotação de 30 dias.

Base de dados: diário. Ficheiros: semanal (mudam menos). Backups incrementais durante o dia se o volume de tickets for elevado.

Restaure periodicamente em ambiente de teste. Um backup nunca testado é tão mau quanto nenhum backup. Agende testes trimestrais.

Sim. Faça backup dos volumes Docker com docker cp ou rsync dos diretórios montados. A base de dados precisa de um mysqldump consistente.

Precisa de ajuda?