Files
backup-configs/root/dokuwiki_backup/backup_rsit.sh
Michael Seidel 3f854573dc Config-Backup 2026-03-28 17:01:42
Geänderte Dateien:
 - root/.ssh/config
 - root/backup-config/backup-config.sh
 - root/backup-config/run-backup-and-push.sh
 - root/backup-config/sources.txt
 - root/dokuwiki_backup/backup_rsit.sh
 - root/dokuwiki_backup/backup_wiki.sh
2026-03-28 17:01:42 +01:00

48 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# ===== Konfiguration =====
SOURCE="/root/docker/dokuwiki/data" # Root von DokuWiki (enthält data/)
BACKUPDIR="/root/dokuwiki_backup"
REMOTE_USER="backupuser"
REMOTE_HOST="backupserver"
REMOTE_PATH="/remote/backup/path"
RETENTION_DAYS=14
DATE=$(date +%F)
ARCHIVE="dokuwiki-rsit-$DATE.tar.gz"
HASHFILE="$ARCHIVE.sha256"
# Nur diese Teilpfade sichern (relativ zu $SOURCE)
INCLUDE_PATHS=(
"data/meta/rsit"
"data/media/rsit"
"data/pages/rsit"
)
# ===== Vorbereitung =====
mkdir -p "$BACKUPDIR"
# ===== Prüfen, ob alle Pfade existieren (sonst hart abbrechen) =====
for p in "${INCLUDE_PATHS[@]}"; do
if [[ ! -d "$SOURCE/$p" ]]; then
echo "FEHLER: Verzeichnis fehlt: $SOURCE/$p" >&2
exit 1
fi
done
# ===== Archiv erstellen (Struktur bleibt erhalten) =====
tar -czf "$BACKUPDIR/$ARCHIVE" -C "$SOURCE" "${INCLUDE_PATHS[@]}"
# ===== Hash erzeugen =====
cd "$BACKUPDIR"
sha256sum "$ARCHIVE" > "$HASHFILE"
# ===== Upload =====
#rsync -avz "$ARCHIVE" "$HASHFILE" \
# "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}/"
# ===== Alte Backups lokal löschen =====
find "$BACKUPDIR" -type f -mtime +"$RETENTION_DAYS" -name "dokuwiki-rsit-*.tar.gz" -delete
find "$BACKUPDIR" -type f -mtime +"$RETENTION_DAYS" -name "dokuwiki-rsit-*.sha256" -delete