29 lines
1.2 KiB
Bash
29 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
FILE_NAME=data-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br
|
|
FILE_NAME_COMPLETE=full-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br
|
|
DATABASE_NAME=database
|
|
|
|
# Das wird benötigt für AWS Ionos Kompatibilität.
|
|
export AWS_REQUEST_CHECKSUM_CALCULATION=when_required
|
|
export AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
|
|
|
|
# Wir exportieren die Datenbank und komprimieren sie.
|
|
# IMPORTANT: Dieser Befehl benötigt das `ionos` Profil, sonst wird er nicht funktionieren.
|
|
# Das Profil kann mit `aws configure --profile ionos` erstellt werden.
|
|
# Den Key dafür findet man auf https://dcd.ionos.com/latest/?lang=en#/key-management
|
|
docker exec -t $DATABASE_NAME pg_dump --data-only -U main main | brotli --best > $FILE_NAME
|
|
|
|
aws s3 cp $FILE_NAME s3://ibc-db-backup/ --profile ionos --endpoint-url https://s3.eu-central-3.ionoscloud.com --storage-class STANDARD
|
|
|
|
echo "Uploaded $FILE_NAME"
|
|
|
|
docker exec -t $DATABASE_NAME pg_dumpall -c -U main | brotli --best > $FILE_NAME_COMPLETE
|
|
|
|
aws s3 cp $FILE_NAME_COMPLETE s3://ibc-db-backup/ --profile ionos --endpoint-url https://s3-eu-central-3.ionoscloud.com --storage-class STANDARD
|
|
|
|
echo "Uploaded $FILE_NAME_COMPLETE"
|
|
|
|
# Wir entfernen das Backup
|
|
rm $FILE_NAME
|
|
rm $FILE_NAME_COMPLETE |