Files
nauheim1_borg/backup2home.sh
2025-05-19 23:41:36 +02:00

60 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Variablen
REPO="ssh://stefan@172.25.28.34:22/srv/usbplatte/nauheim1vps"
SOURCE="/home/stefan"
# Passphrase sicher aus Datei lesen
export BORG_PASSCOMMAND="cat /home/stefan/.config/borg/passphrase"
export GOTIFY_TOKEN=$(cat /home/stefan/.config/gotify/token)
EXCLUDES=(
"/home/stefan/docker/privatebin"
"/home/stefan/docker/psitransfer"
"/home/stefan/docker/tautulli/config/cache/images"
"/home/stefan/docker/resiliosync/sync"
"/home/stefan/docker/resiliosync/cache"
"/home/stefan/docker/komga/database.sqlite"
"/home/stefan/docker/komga/logs"
"/home/stefan/docker/komga/lucene"
"/home/stefan/syncthing/sync"
)
BACKUP_NAME="backup-$(date +%Y-%m-%d_%H-%M-%S)"
GOTIFY_URL="https://gotify.nauheimtech.de"
# Funktion zum Senden einer Nachricht an Gotify
send_gotify_notification() {
local message=$1
local priority=$2
curl -s -X POST "$GOTIFY_URL/message" \
-H "X-Gotify-Key: $GOTIFY_TOKEN" \
-d "title=Backup Fehler&message=$message&priority=$priority"
}
# Teste SSH-Verbindung
echo "===== Teste SSH-Verbindung: $(date) ====="
if ! ssh -o BatchMode=yes -o ConnectTimeout=10 stefan@172.25.28.34 "echo Verbindung erfolgreich"; then
send_gotify_notification "Backup fehlgeschlagen: Keine SSH-Verbindung möglich" 10
echo "FEHLER: Keine SSH-Verbindung möglich am $(date)"
exit 1
fi
# Backup starten
echo "===== Backup gestartet: $(date) ====="
borg create --stats --progress "$REPO::$BACKUP_NAME" "$SOURCE" \
$(printf -- '--exclude=%s ' "${EXCLUDES[@]}")
BACKUP_EXIT=$?
# Falls das Backup fehlschlägt, Nachricht an Gotify senden
if [ $BACKUP_EXIT -ne 0 ]; then
send_gotify_notification "Backup fehlgeschlagen: $BACKUP_NAME" 10
echo "FEHLER: Backup fehlgeschlagen ($BACKUP_NAME) am $(date)"
fi
# Alte Backups bereinigen
echo "===== Alte Backups bereinigen: $(date) ====="
borg prune --keep-hourly=12 --keep-daily=7 --keep-weekly=4 --keep-monthly=6 "$REPO"
echo "===== Backup abgeschlossen: $(date) ====="