27 lines
901 B
Bash
Executable file
27 lines
901 B
Bash
Executable file
#!/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)"
|