Backup- & Wiederherstellungsstrategie
Dokumentation der automatisierten Sicherungsverfahren für DokuWiki, den Caddy-Container (CT 150) sowie der Restore-Verfahren im Notfall.
Überblick
Dieser Bereich beschreibt, wie wichtige Inhalte, Konfigurationen und Betriebssystemdaten wiederhergestellt werden können. Ziel ist ein nachvollziehbarer, möglichst automatisierter Recovery-Prozess im Fehlerfall.
Verwandte Seiten
1. DokuWiki-Sicherungskonzept
DokuWiki speichert alle Daten dateibasiert (Flat-File). Eine relationale Datenbank ist nicht erforderlich.
| Parameter | Konfiguration / Wert |
|---|---|
| Sicherungstyp | Intelligentes Vollbackup mit Änderungserkennung |
| Prüflogik | Sichert nur, wenn Dateien seit dem letzten Archiv geändert wurden |
| Ignorierte Daten | Cache (data/cache) und Locks (data/locks) |
| Sicherungsziel | /var/backups/dokuwiki/ |
| Vorhaltezeit | 14 Tage (ältere Archive werden automatisch bereinigt) |
| Ausführungszeit | Täglich um 02:30 Uhr per Cronjob |
2. Backup-Skript (/usr/local/bin/backup-dokuwiki.sh)
Das Skript liegt auf Container 150 unter /usr/local/bin/backup-dokuwiki.sh (Rechte: chmod 700):
#!/bin/bash
set -e
# Konfiguration
SOURCE_DIR="/var/www/dokuwiki"
BACKUP_DIR="/var/backups/dokuwiki"
TIMESTAMP=$(date +"%Y-%m-%d_%H%M%S")
BACKUP_FILE="${BACKUP_DIR}/dokuwiki-backup-${TIMESTAMP}.tar.gz"
RETENTION_DAYS=14
# Relevante Inhaltsordner (Cache & Locks ignoriert)
WATCH_DIRS=(
"${SOURCE_DIR}/data/pages"
"${SOURCE_DIR}/data/media"
"${SOURCE_DIR}/data/meta"
"${SOURCE_DIR}/conf"
)
mkdir -p "${BACKUP_DIR}"
# Letztes Archiv ermitteln
LAST_BACKUP=$(ls -t "${BACKUP_DIR}"/dokuwiki-backup-*.tar.gz 2>/dev/null | head -n 1)
# Auf inhaltliche Änderungen prüfen
if [ -n "${LAST_BACKUP}" ]; then
CHANGES=$(find "${WATCH_DIRS[@]}" -newer "${LAST_BACKUP}" -print -quit 2>/dev/null)
if [ -z "${CHANGES}" ]; then
echo "[$(date)] Keine inhaltlichen Änderungen seit ${LAST_BACKUP##*/} – Backup übersprungen."
exit 0
fi
fi
# Archivierung durchführen
tar -czf "${BACKUP_FILE}" -C /var/www dokuwiki
chmod 600 "${BACKUP_FILE}"
# Veraltete Archive bereinigen
find "${BACKUP_DIR}" -name "dokuwiki-backup-*.tar.gz" -type f -mtime +${RETENTION_DAYS} -delete
echo "[$(date)] Änderungen erkannt. Neues Backup erstellt: ${BACKUP_FILE}"
3. Installation & Cronjob-Einrichtung
Skript ausführbar machen und Zielordner berechtigen:
chmod +x /usr/local/bin/backup-dokuwiki.sh
mkdir -p /var/backups/dokuwiki
Cronjob in der Crontab von root hinterlegen (crontab -e):
30 2 * * * /usr/local/bin/backup-dokuwiki.sh >> /var/log/dokuwiki-backup.log 2>&1
Manuelle Statuskontrolle der Sicherungen:
# Letzte Backups auflisten
ls -lh /var/backups/dokuwiki/
# Logfile des Cronjobs prüfen
cat /var/log/dokuwiki-backup.log | tail -10
4. Wiederherstellung im Ernstfall (Restore)
Sollte DokuWiki durch ein Fehl-Plugin beschädigt werden oder Seiten versehentlich gelöscht worden sein:
1. Bestehende Installation wegsichern / leeren
systemctl stop caddy
mv /var/www/dokuwiki /var/www/dokuwiki_defekt_$(date +%F)
2. Gewünschtes Archiv entpacken
# Ersetze den Dateinamen durch das gewünschte Datum:
tar -xzf /var/backups/dokuwiki/dokuwiki-backup-JAHR-MONAT-TAG_ZEIT.tar.gz -C /var/www
3. Dateirechte korrigieren & Caddy starten
chown -R www-data:www-data /var/www/dokuwiki
chmod -R 755 /var/www/dokuwiki
systemctl start caddy
5. Host-Ebene (Proxmox VE Sicherung)
Das Skript sichert DokuWiki intern auf dem Dateisystem von CT 150. Um vor Ausfällen des Proxmox-Hosts oder des ZFS-Pools geschützt zu sein, wird der gesamte Container 150 wöchentlich über das Proxmox-Backup (PBS / VZDump) auf ein externes Speicherziel gesichert.
Dokumentationsstand: September 2026