Skip to main content

yeboyebo-backup-tools

Herramienta de backup PostgreSQL multiplataforma (Linux + Windows) con montaje remoto, replicacion, test de integridad y alertas por email.

Instalacion

pip install yeboyebo-backup-tools

# Opcional: logging remoto a Grafana Loki
pip install yeboyebo-backup-tools[loki]

Uso rapido

# Backup de todas las BBDD listadas en lista.txt
backup-tools db dump lista.txt
backup-tools -v db dump lista.txt        # con log detallado
backup-tools -vv db dump lista.txt       # con log muy detallado

# Restaurar el backup mas reciente de cada BBDD
backup-tools db restore lista.txt

# Dump + restore en servidor replica
backup-tools db replicate lista.txt

# Test de integridad: restaura cada backup en BBDD temporal y verifica
backup-tools db test lista.txt

# Sincronizar backups a NAS / disco remoto (ultimas 12h)
backup-tools file remote /mnt/nas //192.168.1.200/backups
backup-tools file remote /mnt/nas //192.168.1.200/backups 24   # ultimas 24h

# Sincronizar las copias mas recientes (sync_copies) a un NAS Synology por SMB
backup-tools config sync_copies 3
backup-tools file sync /mnt/synology //192.168.1.200/backups lista.txt

# Informe diario por email: ficheros generados en las ultimas 24h
backup-tools resume

# Monitorizar conectividad (envia email si no responde)
backup-tools alive 192.168.1.1

# Gestion de parametros de configuracion
backup-tools config server_name MI_SERVIDOR
backup-tools config user_db postgres true    # true = ofuscar valor

# Version
backup-tools version

Acciones

Accion Argumentos Descripcion
db dump lista.txt Vuelca cada BBDD, comprime con gzip, verifica tamano minimo
db restore lista.txt Restaura el backup mas reciente de cada BBDD
db replicate lista.txt Dump local + restore en servidor replica (replicate_host_db)
db test lista.txt Restaura en BBDD temporal, comprueba integridad, envia email
file remote dir dispositivo [horas] Copia backups recientes a NAS/CIFS
file sync dir dispositivo lista.txt Sincroniza las sync_copies copias mas recientes de cada BBDD de lista.txt a un NAS (Synology/SMB); el destino queda como espejo de esa seleccion
resume (sin args) Informe diario por email de backups generados
alive host Ping a un host. Si falla, envia alerta por email
config param valor [true] Establece parametro en config.ini. true = ofuscar
version (sin args) Imprime la version

Configuracion

El fichero config.ini se busca en este orden:

  1. Variable de entorno BACKUP_TOOLS_CONFIG
  2. ~/.config/backup_tools/config.ini (XDG, recomendado)
  3. config.ini junto al modulo (legado)

Parametros principales:

Parametro Default Descripcion
days_alive 20 Dias de retencion de backups
local_folder_backups /backups Directorio donde se almacenan los backups
host_db 127.0.0.1 Host PostgreSQL
port_db 5432 Puerto PostgreSQL
user_db — Usuario PostgreSQL (ofuscado)
pass_db — Contrasena PostgreSQL (ofuscada)
replicate_host_db — Host replica (para db replicate)
user_email — Cuenta Gmail para envio de alertas
pass_email — Contrasena Gmail (ofuscada)
list_mails — Destinatarios de alertas (separados por coma)
current_copies 1 Nº de backups recientes en carpeta currents/
sync_copies 1 Nº de backups recientes por BBDD a sincronizar con file sync
min_size 5000 Tamano minimo en bytes (alerta si es menor)
loki_url (monitor.yeboyebo.es) Endpoint Loki para logging remoto

Requisitos

  • Python >= 3.8
  • pg_dump, psql (PostgreSQL client tools)
  • Linux: mount/mount.cifs (solo para file remote)
  • Sin dependencias externas de sistema para tar, ping, find, touch (todo stdlib Python)

Compatibilidad Windows

Desde v1.1. Particularidades:

  • Montaje: net use en vez de mount/mount.cifs
  • nice no disponible (se ignora)
  • ping -n en vez de ping -c
  • Compresion via tarfile (stdlib), no requiere tar externo
  • Programar tareas con Task Scheduler en vez de cron

Ejemplo crontab

# Backup diario 3:17 AM
17 3 * * * cd /opt/backup_tools && backup-tools db dump lista.txt

# Replica a contingencia 5:17 AM
17 5 * * * cd /opt/backup_tools && backup-tools db replicate lista.txt

# Test integridad domingos 7:17 AM
17 7 * * 0 cd /opt/backup_tools && backup-tools db test lista.txt

# Informe diario 8:17 AM
17 8 * * * cd /opt/backup_tools && backup-tools resume

# Ping cada 30 min
*/30 * * * * cd /opt/backup_tools && backup-tools alive 192.168.1.1

Metadata

Release files for yeboyebo-backup-tools 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yeboyebo-backup-tools 1.3.0
File Size Uploaded
yeboyebo_backup_tools-1.3.0.tar.gz 17.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yeboyebo-backup-tools 1.3.0
File Interpreter ABI Platform
yeboyebo_backup_tools-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.9 kB

Release files / yeboyebo_backup_tools-1.3.0.tar.gz

Download URL yeboyebo_backup_tools-1.3.0.tar.gz
Size 17.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d079e255c98c7a4f28f286a26e1fdaa191b7eb3e3e2aa7a4118d9cfb51a1d6b0
BLAKE2b-256 checksum
How to use checksums
44aec7d3a1f777891207c4b1e222450f1ee0a0e9080a0cda0cfd4a330c0deb09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / yeboyebo_backup_tools-1.3.0-py3-none-any.whl

Download URL yeboyebo_backup_tools-1.3.0-py3-none-any.whl
Size 18.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8c9164072ec22a4f384bcb0358576e4964b0265948f75192d140717fca6a0b96
BLAKE2b-256 checksum
How to use checksums
dd0b33d7cb2346f385644bddf882b0e2ef63bdab89a39b2ca9e055e76777930d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release history Release notifications | RSS feed

1.3.7

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

This release

1.3.0 This release

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2

2 release files

1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page