22 lines
815 B
Bash
22 lines
815 B
Bash
#!/usr/bin/env sh
|
|
# Erstellt ein Voll-Backup der Datenbank im Volume "sql-backup" und kopiert es zusätzlich nach ./backups.
|
|
# Aufruf aus dem Ordner deploy/: ./scripts/backup.sh
|
|
set -eu
|
|
|
|
cd "$(dirname "$0")/.."
|
|
. ./.env
|
|
|
|
STAMP=$(date +%Y%m%d-%H%M%S)
|
|
FILE="familyplanner-${STAMP}.bak"
|
|
|
|
docker compose exec -T sql /opt/mssql-tools18/bin/sqlcmd \
|
|
-S localhost -U sa -P "$SQL_SA_PASSWORD" -C -b \
|
|
-Q "BACKUP DATABASE [familyplannerdb] TO DISK = N'/var/opt/mssql/backup/${FILE}' WITH COMPRESSION, CHECKSUM, INIT"
|
|
|
|
mkdir -p backups
|
|
docker compose cp "sql:/var/opt/mssql/backup/${FILE}" "backups/${FILE}"
|
|
echo "Backup erstellt: backups/${FILE}"
|
|
|
|
# Alte Backups im Volume aufräumen (älter als 14 Tage).
|
|
docker compose exec -T sql sh -c "find /var/opt/mssql/backup -name 'familyplanner-*.bak' -mtime +14 -delete"
|