Files
Ansible/files/cron/postgres-backup
T
2025-05-22 18:56:37 +02:00

24 lines
524 B
Bash

#!/bin/bash
DATABASES=(
"authentik"
"gitea"
"mealie"
"nextcloud"
)
# Variables
LOCATION="/home/juulk/docker/postgresql"
RETENTION=7
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_DATE="backup-$DATE.sql"
# Dump all databases and zip dump
for database in "${DATABASES[@]}"; do
FILE="$LOCATION/$database/$database-$BACKUP_DATE"
docker exec -u postgres postgres pg_dump -d "$database" > "$FILE"
gzip "$FILE"
done
# Delete old backups
find "$LOCATION" -name "*backup*.sql.gz" -type f -mtime +$RETENTION -exec rm {} \;