#!/usr/bin/env bash # backup_pb.sh — PocketBase-Daten sichern (als Cron-Job) # # Speichert pb_data als .tar.gz in ~/kennzeichen/backups/ # Behält die letzten 14 Tage. # # Cron einrichten (täglich 03:00): # crontab -e # 0 3 * * * bash /home/denode/kennzeichen/scripts/backup_pb.sh >> /var/log/kennzeichen-backup.log 2>&1 set -e BACKUP_DIR="$HOME/kennzeichen/backups" CONTAINER="kennzeichen-pocketbase-1" DATE=$(date '+%Y-%m-%d') OUT="$BACKUP_DIR/pb_data_$DATE.tar.gz" mkdir -p "$BACKUP_DIR" # pb_data aus Container holen und packen echo "$(date '+%Y-%m-%d %H:%M') Backup → $OUT" docker exec "$CONTAINER" tar -czf - /pb/pb_data 2>/dev/null > "$OUT" echo " Größe: $(du -sh "$OUT" | cut -f1)" # Alte Backups löschen (älter als 14 Tage) find "$BACKUP_DIR" -name "pb_data_*.tar.gz" -mtime +14 -delete echo " Vorhandene Backups: $(ls "$BACKUP_DIR"/pb_data_*.tar.gz 2>/dev/null | wc -l)"