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 <noreply@anthropic.com>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -17,3 +17,4 @@ backend/vendor/
|
|||||||
|
|
||||||
# OS
|
# OS
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
backups/
|
||||||
|
|||||||
23
scripts/backup-db.sh
Executable file
23
scripts/backup-db.sh
Executable file
@@ -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
|
||||||
Reference in New Issue
Block a user