From 6d7d353ea208d7af05d7128571d4b95bf379a1d0 Mon Sep 17 00:00:00 2001 From: "Christoph K." Date: Mon, 23 Mar 2026 20:43:58 +0100 Subject: [PATCH] Add database backup script scripts/backup-db.sh copies the remote DB via scp to ./backups/ with a timestamp. Backups older than 30 days are auto-deleted. Backup directory is gitignored. Co-Authored-By: Claude Sonnet 4.6 --- .gitignore | 1 + scripts/backup-db.sh | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100755 scripts/backup-db.sh diff --git a/.gitignore b/.gitignore index 1214997..d06a593 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ backend/vendor/ # OS .DS_Store +backups/ diff --git a/scripts/backup-db.sh b/scripts/backup-db.sh new file mode 100755 index 0000000..f4f1d64 --- /dev/null +++ b/scripts/backup-db.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# Erstellt ein Backup der Krafttrainer-Datenbank vom Server. +# Verwendung: ./scripts/backup-db.sh [user@host] +# +# Standard-Ziel: christoph@192.168.1.118 +# Backups werden in ./backups/ gespeichert. + +set -euo pipefail + +REMOTE="${1:-christoph@192.168.1.118}" +REMOTE_DB="/home/christoph/fitnesspad/krafttrainer.db" +BACKUP_DIR="$(dirname "$0")/../backups" +TIMESTAMP="$(date +%Y-%m-%d_%H-%M-%S)" +BACKUP_FILE="${BACKUP_DIR}/krafttrainer_${TIMESTAMP}.db" + +mkdir -p "$BACKUP_DIR" + +echo "Backup von ${REMOTE}:${REMOTE_DB} ..." +scp "${REMOTE}:${REMOTE_DB}" "${BACKUP_FILE}" +echo "Gespeichert: ${BACKUP_FILE}" + +# Alte Backups (älter als 30 Tage) löschen +find "$BACKUP_DIR" -name "krafttrainer_*.db" -mtime +30 -delete 2>/dev/null && true