groupe-meditation/ansible/roles/backup/templates/groupe-meditation-backup.j2

28 lines
1.3 KiB
Text
Raw Normal View History

#!/bin/bash
set -euo pipefail
umask 007
BACKUP_DIR="{{ groupe_meditation_backup_dir }}"
RETENTION_DAYS="{{ groupe_meditation_backup_retention_days }}"
DB_NAME="{{ groupe_meditation_db_name }}"
DB_USER="{{ groupe_meditation_db_user }}"
DB_HOST="{{ groupe_meditation_db_host }}"
DATE="$(date +%Y-%m-%d_%H%M)"
mkdir -p "$BACKUP_DIR"
export PGPASSWORD="{{ groupe_meditation_db_password }}"
cd "{{ groupe_meditation_backend_dir }}"
2026-06-01 07:46:29 -04:00
"{{ groupe_meditation_backend_dir }}/venv/bin/python" "{{ groupe_meditation_deploy_dir }}/tenant_schemas.py"
"{{ groupe_meditation_backend_dir }}/venv/bin/python" "{{ groupe_meditation_deploy_dir }}/group_backup.py" all
pg_dump -U "$DB_USER" -h "$DB_HOST" -Fc "$DB_NAME" > "$BACKUP_DIR/grpmed_${DATE}.dump"
2026-06-01 07:46:29 -04:00
for schema in $(PGPASSWORD="$PGPASSWORD" psql -U "$DB_USER" -h "$DB_HOST" -d "$DB_NAME" -Atc "SELECT tenant_schema FROM groupes WHERE tenant_schema IS NOT NULL ORDER BY tenant_schema"); do
pg_dump -U "$DB_USER" -h "$DB_HOST" -n "$schema" -Fc "$DB_NAME" > "$BACKUP_DIR/${schema}_${DATE}.dump"
done
find "$BACKUP_DIR" -name "grpmed_*.dump" -mtime +"$RETENTION_DAYS" -delete
find "$BACKUP_DIR" -name "group_*.json" -mtime +"$RETENTION_DAYS" -delete
2026-06-01 07:46:29 -04:00
find "$BACKUP_DIR" -name "grp_*.dump" -mtime +"$RETENTION_DAYS" -delete
echo "[$(date)] Sauvegarde terminee: grpmed_${DATE}.dump"