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