fase 3 (operacion): backups automaticos por instancia con descubrimiento dinamico, verificacion de integridad, retencion GFS 14/8/6, prueba de restauracion semanal, timers systemd y logrotate; panel CLI multi-instancia (admin_instancias.py) + doc de operacion y restauracion

This commit is contained in:
2026-10-11 09:42:08 +00:00
parent dabd8c6bd7
commit 91f909a6d0
12 changed files with 1602 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
[Unit]
Description=SKEEN — backup de la instancia %i (unit odoo-%i.service)
Documentation=file:/root/skeen-proyecto/docs/producto/operacion-instancia.md
After=network.target postgresql.service
Wants=postgresql.service
[Service]
Type=oneshot
User=root
# Plantilla opcional para programar una instancia concreta:
# systemctl enable --now backup-instancia@clinica2.timer
ExecStart=/root/skeen-proyecto/infra/ops/backup_instancias.sh --instancia %i
Nice=10
IOSchedulingClass=best-effort
IOSchedulingPriority=6
StandardOutput=journal
StandardError=journal

View File

@@ -0,0 +1,12 @@
[Unit]
Description=SKEEN — backup diario de una instancia (%i)
[Timer]
OnCalendar=*-*-* 03:40:00
RandomizedDelaySec=1800
AccuracySec=1min
Persistent=true
Unit=backup-instancia@%i.service
[Install]
WantedBy=timers.target

View File

@@ -0,0 +1,16 @@
[Unit]
Description=SKEEN — backup semanal CON prueba de restauración
Documentation=file:/root/skeen-proyecto/docs/producto/operacion-instancia.md
After=network.target postgresql.service
Wants=postgresql.service
[Service]
Type=oneshot
User=root
# --verificar restaura a una DB temporal y compara conteos (requiere espacio).
ExecStart=/root/skeen-proyecto/infra/ops/backup_instancias.sh --verificar
Nice=10
IOSchedulingClass=best-effort
IOSchedulingPriority=6
StandardOutput=journal
StandardError=journal

View File

@@ -0,0 +1,13 @@
[Unit]
Description=SKEEN — verificación semanal de backups (restauración real)
Documentation=file:/root/skeen-proyecto/docs/producto/operacion-instancia.md
[Timer]
OnCalendar=Sun *-*-* 04:40:00
RandomizedDelaySec=1800
AccuracySec=1min
Persistent=true
Unit=skeen-backup-verify.service
[Install]
WantedBy=timers.target

View File

@@ -0,0 +1,17 @@
[Unit]
Description=SKEEN — backup automático de todas las instancias Odoo
Documentation=file:/root/skeen-proyecto/docs/producto/operacion-instancia.md
After=network.target postgresql.service
Wants=postgresql.service
[Service]
Type=oneshot
User=root
# Descubre instancias por systemd (odoo-*.service); no hardcodea la lista.
ExecStart=/root/skeen-proyecto/infra/ops/backup_instancias.sh
Nice=10
IOSchedulingClass=best-effort
IOSchedulingPriority=6
# El script ya registra en /var/log/skeen-backup.log; journal sólo como eco.
StandardOutput=journal
StandardError=journal

View File

@@ -0,0 +1,14 @@
[Unit]
Description=SKEEN — backup diario de instancias (~03:20)
Documentation=file:/root/skeen-proyecto/docs/producto/operacion-instancia.md
[Timer]
OnCalendar=*-*-* 03:20:00
RandomizedDelaySec=1800
AccuracySec=1min
# Si la VPS estuvo apagada a la hora prevista, corre al arrancar.
Persistent=true
Unit=skeen-backup.service
[Install]
WantedBy=timers.target