Backup y Restauración¶
Sistema Automatico¶
El sistema incluye backups automáticos diarios.
Configuración¶
| Aspecto | Valor |
|---|---|
| Frecuencia | Diario a medianoche (00:00) |
| Retencion | 5 backups |
| Ubicación | ./backups/ |
| Log | /var/log/odoo-backup.log |
Cronjob¶
Contenido del Backup¶
Cada backup es un archivo .tar.gz qué contiene:
odoo_backup_YYYYMMDD_HHMMSS.tar.gz
├── database.dump # PostgreSQL (formato custom -Fc)
├── filestore.tar # Archivos adjuntos de Odoo
└── backup_info.txt # Metadatos del backup
Ejecutar Backup Manual¶
Salida esperada:
[2026-01-20 00:00:00] ==========================================
[2026-01-20 00:00:00] Starting Odoo backup: odoo_backup_20260120_000000
[2026-01-20 00:00:00] ==========================================
[2026-01-20 00:00:00] Step 1/3: Dumping PostgreSQL database...
[2026-01-20 00:00:10] Database dump complete: 13M
[2026-01-20 00:00:10] Step 2/3: Backing up Odoo filestore...
[2026-01-20 00:00:15] Filestore backup complete: 141M
[2026-01-20 00:00:15] Step 3/3: Creating compressed archive...
[2026-01-20 00:00:25] Archive created: odoo_backup_20260120_000000.tar.gz (45M)
[2026-01-20 00:00:25] Cleaning up old backups (keeping 5 most recent)...
[2026-01-20 00:00:25] ==========================================
[2026-01-20 00:00:25] Backup completed successfully!
[2026-01-20 00:00:25] ==========================================
Ver Backups Disponibles¶
Ejemplo:
-rw-r--r-- 1 root root 45M Jan 20 00:00 odoo_backup_20260120_000000.tar.gz
-rw-r--r-- 1 root root 44M Jan 19 00:00 odoo_backup_20260119_000000.tar.gz
-rw-r--r-- 1 root root 43M Jan 18 00:00 odoo_backup_20260118_000000.tar.gz
Restaurar Backup¶
Advertencia
La restauración reemplaza todos los datos actuales. Asegurate de tener un backup del estado actual antes de restaurar.
Comando¶
Proceso¶
- Confirmacion - Script pide confirmacion
- Extracción - Descomprime el backup
- Stop Odoo - Detiene el contenedor
- Drop DB - Elimina la base de datos actual
- Restore DB - Restaura desde dump
- Restore Filestore - Restaura archivos
- Start Odoo - Inicia el contenedor
Salida Esperada¶
╔══════════════════════════════════════════════════════════════╗
║ WARNING ║
║ This will REPLACE the current database and filestore! ║
║ All existing data will be LOST! ║
╚══════════════════════════════════════════════════════════════╝
Backup file: backups/odoo_backup_20260120_000000.tar.gz
Target database: odoo_full3d
Are you sure you want to continue? (yes/no): yes
[2026-01-20 12:00:00] Starting restore...
[2026-01-20 12:00:05] Database restored successfully
[2026-01-20 12:00:10] Filestore restored successfully
[2026-01-20 12:00:15] Restore completed successfully!
Estrategia 3-2-1¶
Para disaster recovery completo, se recomienda:
| Copia | Ubicación | Método |
|---|---|---|
| 1 | Local (./backups/) |
Automatico diario |
| 2 | Servidor remoto | SCP manual |
| 3 | Almacenamiento cloud | Upload manual |
Transferir a Servidor Remoto¶
# Obtener ultimo backup
LATEST=$(ls -t backups/odoo_backup_*.tar.gz | head -1)
# Transferir via SCP
scp "$LATEST" usuario@servidor-remoto:/ruta/backups/
Programar Transferencia Automática (Opcional)¶
Agregar al crontab después del backup:
30 0 * * * scp $(ls -t /opt/full3d-odoo/backups/odoo_backup_*.tar.gz | head -1) usuario@servidor:/backups/
Verificar Cronjob¶
# Ver crontab actual
crontab -l
# Debe mostrar:
# 0 0 * * * /opt/full3d-odoo/scripts/backup.sh >> /var/log/odoo-backup.log 2>&1