
OTOBO / Znuny Backup & Restore – Guia Abrangente
Neste guia, vamos mergulhar profundamente nas estratégias de backup para OTOBO e abordar:
- Dump do Banco de Dados via
mysqldump - Backup e restauração de Volumes Docker
- Scripts próprios do OTOBO
backup.plerestore.pl - Automação com Cronjobs e Tratamento de Erros
- Arquivamento de Longo Prazo (por exemplo, AWS S3)
1. Dump do Banco de Dados com mysqldump
Vantagem: Rápido, independente de plataforma, contém quase todos os tickets, usuários e configurações.
Exemplo de Comando
mysqldump \
--host=${DB_HOST} \
--user=${DB_USER} \
--password=${DB_PASS} \
--column-statistics=0 \
--single-transaction \
--databases otobo \
> /backup/otobo_db_$(date +'%Y%m%d_%H%M').sql--single-transaction: Minimiza locks de tabela, OTOBO permanece disponível.- Retenção: por exemplo, a cada hora, os últimos 72 dumps (3 dias) via Cron.
Cron Job (a cada hora, retenção de 3 dias)
0 * * * * /usr/local/bin/otobo_db_backup.sh
otobo_db_backup.shcria o dump e exclui arquivos com mais de 3 dias.
Exemplo de Script: otobo_db_backup.sh
#!/bin/bash
BACKUP_DIR="/backup/db"
mkdir -p "$BACKUP_DIR"
DATE=$(date +'%Y%m%d_%H%M')
FILE="$BACKUP_DIR/otobo_db_${DATE}.sql.gz"
echo "Criando dump do DB em $FILE"
mysqldump --host=localhost --user=otobo \
--password=SecretPass --column-statistics=0 \
--single-transaction otobo | gzip > "$FILE"
# Excluir dumps antigos (com mais de 3 dias)
find "$BACKUP_DIR" -type f -name '*.sql.gz' -mtime +3 -delete2. Backup de Volume Docker
Todos os arquivos armazenados persistentemente (anexos, configuração, logs) estão em volumes Docker.
2.1 Backup Completo dos Volumes
#!/bin/bash
date=
DATE=$(date +'%d%m%Y_%H%M%S')
# Parar o container para um sistema de arquivos consistente
docker compose -f /opt/otobo-docker/compose.yml down
tar -czf "/tmp/docker_volumes_$DATE.tar.gz" /var/lib/docker/volumes
docker compose -f /opt/otobo-docker/compose.yml up -d --build- Down/Up: Garante uma cópia limpa.
- Arquivos: TAR comprimido com GZ no host temporário.
2.2 Restauração: Volumes & Containers
#!/bin/bash
# Uso: restore_volumes.sh arquivo_backup.tar.gz
tar -xzf "$1" -C /
# Remover volumes antigos
docker compose -f /opt/otobo-docker/compose.yml down
rm -rf /var/lib/docker/volumes
# Restaurar e reiniciar
tar -xzf "$1" -C /
docker compose -f /opt/otobo-docker/compose.yml up -d3. Scripts OTOBO: backup.pl & restore.pl
O OTOBO fornece seus próprios scripts CLI dentro do container:
# Exibir ajuda
/opt/otobo/scripts/backup.pl -hOpções
| Opção | Padrão | Descrição |
|---|---|---|
-d, --backup-dir | obrigatório | Diretório de destino para backups |
-c, --compress | gzip | Método de compressão (gzip | bzip2) |
-r, --remove-old-backups DAYS | nenhum | Exclui backups antigos (em dias) |
-t, --backup-type | fullbackup | fullbackup (tudo) | nofullbackup | dbonly |
fullbackup: Banco de dados + diretório home (sem cache).dbonly: Apenas banco de dados.
Exemplo: Backup Completo no Container Docker
docker run --rm \
--volume otobo_opt_otobo:/opt/otobo \
--volume otobo_backup:/otobo_backup \
rotheross/otobo:latest-10_0 scripts/backup.pl \
--backup-dir /otobo_backup --compress gzip --remove-old-backups 7Restaurar no Container
docker run --rm \
--volume otobo_opt_otobo:/opt/otobo \
--volume otobo_backup:/otobo_backup \
rotheross/otobo:latest-10_0 scripts/restore.pl \
--backup-dir /otobo_backup/20231015_123045 --backup-dir /opt/otobo4. Automação & Tratamento de Erros
Script Wrapper com Verificação de Erros
#!/bin/bash
COMPOSE_FILE="/opt/otobo-docker/compose.yml"
# Iniciar backup
docker compose -f "$COMPOSE_FILE" run --rm backup
if [ $? -ne 0 ]; then
echo "Falha no backup" >&2
exit 1
fi
echo "Backup concluído com sucesso"Antigo: Cron para Backup de Volume
0 */6 * * * /usr/local/bin/volume_backup.shLimpeza de Backups Antigos
#!/bin/bash
BACKUP_DIR="/caminho/para/backups"
echo "Removendo backups com mais de 30 dias em $BACKUP_DIR"
find "$BACKUP_DIR" -mindepth 1 -mtime +30 -exec rm -rf {} \\
\;
echo "Concluído."5. Arquivamento de Longo Prazo & Nuvem
- AWS S3: Upload dos arquivos
.tar.gze.sql.gzviaaws cliou script Python. - rclone: Suporte para diversos destinos (S3, Azure Blob, FTP).
- Vantagem: Armazenamento offsite, escalabilidade ilimitada.
Diferenças entre OTOBO e Znuny (Contexto de Backup)
Na área de Backup & Restore, OTOBO e Znuny diferem nos seguintes aspectos:
Backups de Container
- OTOBO: Imagem Docker oficial fornece serviço de backup pré-instalado com hooks CLI (
docker compose run backup), incluindo montagens de volume preparadas e variáveis de ambiente. - Znuny: Configurações Docker da comunidade exigem a adição manual de um container de backup ou a adaptação de scripts próprios.
- OTOBO: Imagem Docker oficial fornece serviço de backup pré-instalado com hooks CLI (
Scripts CLI do OTOBO
- OTOBO:
backup.plerestore.plna imagem suportam opções de limpeza automática (--remove-old-backups), seleção de compressão e flag de transação única. - Znuny: Scripts semelhantes existem, muitas vezes sem
--remove-old-backupsou opções avançadas de dump de DB; é necessário adaptar para adicionar funcionalidades.
- OTOBO:
Otimizações de Dump de DB
- OTOBO: A flag padrão
--single-transactioné recomendada e documentada para evitar locks; a CLI garante o uso consistente. - Znuny: A documentação da comunidade geralmente aponta para um dump simples sem proteção de transação, com risco de locks sob alta carga.
- OTOBO: A flag padrão
Estratégia de Snapshot de Volume
- OTOBO: Exemplos de scripts (por exemplo, backup completo e restauração) são a referência oficial e testados em ambientes multi-container.
- Znuny: Scripts de snapshot variam muito, faltam práticas recomendadas oficiais; os usuários geralmente precisam definir suas próprias sequências de down/up.
Plugins de Automação & Nuvem
- OTOBO: Exemplos integrados de uploaders S3 (script Python) e módulos de configuração para Azure, Google Cloud Storage.
- Znuny: Nenhum plugin principal para armazenamento em nuvem; soluções geralmente externas via
rcloneou scripts de upload separados.
6. Conclusão
Com este foco nas diferenças específicas de backup, você pode decidir especificamente se utiliza os mecanismos pré-fabricados do OTOBO ou expande individualmente as configurações do Znuny.## 6. Conclusão
Com estes scripts detalhados e estratégias, seus dados OTOBO estarão seguros, automatizados e rapidamente recuperáveis. Seja dump de DB, volumes Docker ou ferramentas padrão OTOBO – você terá todas as opções sob controle.