parent
847da7f078
commit
d6e471e63c
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# /opt/backup/docker_postgres_backup.sh
|
||||||
|
|
||||||
|
BACKUP_DIR="/opt/backup"
|
||||||
|
RETENTION_DAYS=3 # Backups 3 Tage behalten
|
||||||
|
DATE=$(date +'%Y-%m-%d')
|
||||||
|
|
||||||
|
DATABASES=(
|
||||||
|
"keycloak-db:keycloak:keycloak" # Keycloak DB
|
||||||
|
"odoo-db:odoo:busybox-demo" # Aktuelle DB für odoo setzen
|
||||||
|
)
|
||||||
|
|
||||||
|
RESULTS=()
|
||||||
|
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|
||||||
|
for DB_ENTRY in "${DATABASES[@]}"; do
|
||||||
|
IFS=":" read -r CONTAINER DB_USER DB_NAME <<< "$DB_ENTRY"
|
||||||
|
FILENAME="${BACKUP_DIR}/${DATE}_db_${DB_NAME}.sql.gz"
|
||||||
|
|
||||||
|
if docker exec "$CONTAINER" pg_dump -U "$DB_USER" "$DB_NAME" | gzip > "$FILENAME"; then
|
||||||
|
RESULTS+=("\"$DB_NAME\":\"ok\"")
|
||||||
|
else
|
||||||
|
RESULTS+=("\"$DB_NAME\":\"error\"")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Alte Backups löschen
|
||||||
|
find "$BACKUP_DIR" -name "*.sql.gz" -type f -mtime +$RETENTION_DAYS -exec rm {} \;
|
||||||
|
|
||||||
|
# JSON-Ausgabe formatieren
|
||||||
|
JSON_OUTPUT="{"
|
||||||
|
JSON_OUTPUT+=$(IFS=, ; echo "${RESULTS[*]}")
|
||||||
|
JSON_OUTPUT+="}"
|
||||||
|
|
||||||
|
echo "$JSON_OUTPUT"
|
||||||
Loading…
Reference in New Issue