Db backup Script
This commit is contained in:
@@ -90,6 +90,21 @@ docker compose up -d --build backend
|
|||||||
- Frontend/API intern: `http://127.0.0.1:3000/resman/`
|
- Frontend/API intern: `http://127.0.0.1:3000/resman/`
|
||||||
- Fuer produktive Nutzung ist ein Reverse Proxy davor vorgesehen
|
- Fuer produktive Nutzung ist ein Reverse Proxy davor vorgesehen
|
||||||
|
|
||||||
|
### 5. Datenbank Backup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/backup-db.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Backups werden unter `backups/` als gzip-komprimierter SQL-Dump abgelegt.
|
||||||
|
Standardmaessig werden Backups nach 30 Tagen geloescht.
|
||||||
|
|
||||||
|
Optionale Variablen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
BACKUP_DIR=/pfad/zum/backup KEEP_DAYS=90 ./scripts/backup-db.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
🗄️ Datenbank Schema
|
🗄️ Datenbank Schema
|
||||||
resources
|
resources
|
||||||
|
|||||||
Executable
+30
@@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
|
BACKUP_DIR="${BACKUP_DIR:-$ROOT_DIR/backups}"
|
||||||
|
DB_SERVICE="${DB_SERVICE:-db}"
|
||||||
|
DB_NAME="${DB_NAME:-resource_manager}"
|
||||||
|
DB_USER="${DB_USER:-resman}"
|
||||||
|
DB_PASSWORD="${DB_PASSWORD:-resmanpass}"
|
||||||
|
KEEP_DAYS="${KEEP_DAYS:-30}"
|
||||||
|
TIMESTAMP="$(date +%Y%m%d-%H%M%S)"
|
||||||
|
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}-${TIMESTAMP}.sql"
|
||||||
|
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|
||||||
|
cd "$ROOT_DIR"
|
||||||
|
|
||||||
|
echo "Creating database backup: $BACKUP_FILE"
|
||||||
|
|
||||||
|
docker compose exec -T "$DB_SERVICE" sh -c \
|
||||||
|
"MARIADB_PWD='$DB_PASSWORD' mariadb-dump --single-transaction --quick --routines --triggers -u '$DB_USER' '$DB_NAME'" \
|
||||||
|
> "$BACKUP_FILE"
|
||||||
|
|
||||||
|
gzip "$BACKUP_FILE"
|
||||||
|
|
||||||
|
if [[ "$KEEP_DAYS" =~ ^[0-9]+$ ]] && [[ "$KEEP_DAYS" -gt 0 ]]; then
|
||||||
|
find "$BACKUP_DIR" -name "${DB_NAME}-*.sql.gz" -type f -mtime +"$KEEP_DAYS" -delete
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Backup finished: ${BACKUP_FILE}.gz"
|
||||||
Reference in New Issue
Block a user