45 lines
1 KiB
Bash
Executable file
45 lines
1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# === Konfiguration ===
|
|
#REPO="root@10.5.85.202:/cluster-backup/$(hostname)"
|
|
REPO="ssh://storagebox/home/$(hostname)"
|
|
|
|
# === Zu sichernde Verzeichnisse ===
|
|
BACKUP_PATHS="/etc/wireguard/ /app-config"
|
|
|
|
# === Archivname mit Datum ===
|
|
ARCHIVE="$(hostname)-$(date +%Y-%m-%d_%H-%M)"
|
|
|
|
# === Logging ===
|
|
LOGFILE="/var/log/proxmox-borg-backup.log"
|
|
|
|
#export BORG_RSH='ssh -i /root/.ssh/id_ed25519'
|
|
#export BORG_PASSPHRASE='zUGb7Jbc+cMa8RJ'
|
|
# === Borg Backup ausführen ===
|
|
echo "[$(date)] Starte Backup: $ARCHIVE" >> $LOGFILE
|
|
|
|
borg create \
|
|
--verbose \
|
|
--filter AME \
|
|
--remote-path=borg-1.4 \
|
|
--stats \
|
|
--show-rc \
|
|
--compression lz4 \
|
|
"$REPO::$ARCHIVE" \
|
|
$BACKUP_PATHS >> $LOGFILE 2>&1
|
|
|
|
BACKUP_RC=$?
|
|
|
|
# === Alte Backups aufräumen ===
|
|
borg prune -v --list "$REPO" \
|
|
--keep-daily=7 \
|
|
--keep-weekly=4 \
|
|
--keep-monthly=6 >> $LOGFILE 2>&1
|
|
|
|
PRUNE_RC=$?
|
|
|
|
# === Exit-Code prüfen ===
|
|
GLOBAL_RC=$(( BACKUP_RC > PRUNE_RC ? BACKUP_RC : PRUNE_RC ))
|
|
|
|
echo "[$(date)] Backup beendet mit Code $GLOBAL_RC" >> $LOGFILE
|
|
exit $GLOBAL_RC
|