Backup (Deutsch)

English

Es gibt verschiedene Möglichkeiten, deine Wiki zu sichern.

HTML-Archiv

Dazu klickst du auf den Link „Administration“ unten auf einer Seite deines Wikis und dann auf Export HTML. Dadurch erhältst du ein Archiv mit all deinen Dateien, sodass du sie offline lesen kannst.

Die Erstellung des Archivs dauert eine Weile, da ist ein bisschen Geduld angeraten. :)

Die erstellten HTML-Dateien und das Archiv werden gelöscht, wenn eine Wartung durchläuft.

Text-Dateien

Dazu klickst du auf den Link „Administration“ unten auf einer Seite deines Wikis und dann auf Export Text. Dadurch erhältst du ein Archiv mit all den textbasierten Quelldateien, sodass du eine Sicherung deiner Wiki erhältst.

Die erstellten Text-Dateien und das Archiv werden gelöscht, wenn eine Wartung durchläuft.

Sobald du die exportierten Text-Dateien auf deinem Gerät hast, kannst du dort, ohne Internetverbindung, Änderungen vornehmen. Kennst du dich mit Kommandozeilenwerkzeugen wie curl und einer vernünftigen Shell wie bash aus, kannst du die geänderten Dateien wieder in deine Wiki hochladen. Siehe den folgenden Abschnitt.

Eine Sicherung wiederherstellen

Mit folgendem Code stellst du deine Wiki aus heruntergeladenen (und gegebenenfalls bearbeiteten) Text-Dateien im aktuellen Verzeichnis wieder her.

for p in *.txt; do
  base=${p%.txt}
  echo $base
  curl --form frodo=1 --form title=$base --form text="<$p" \
    "https://campaignwiki.org/wiki/NameDeinesWikis" 
  sleep 5
done

Der echo-Ausdruck gibt lediglich Informationen für dich wieder. Der sleep-Ausdruck wird benötigt, damit das Wiki keinen Fehler zurückgibt, dass du zu viele Dateien abrufst.

Das Wiederherstellen von hochgeladenen Dateien wie Bildern ist etwas schwieriger. Es folgt ein kleines Shell-Skript, das die Text-Dateien überspringt (vorausgesetzt, du hast sie zuvor bereits mit der einfachen for-Schleife weiter oben hochgeladen) und lädt die anderen Dateien hoch. Dazu müssen wir den MIME-Typ der Dateien ermitteln und die Dateierweiterung entfernen, um den Seitennamen des Ziels zu erhalten.

for p in *; do
  extension=${p##*.}
  if [[ $extension != "txt" ]]; then
    type=`file --brief --mime-type $p`
    base=${p%.*}
    echo $base $type
    curl --silent --form frodo=1 --form title=$base --form "file=@$p;type=$type" \
      "https://campaignwiki.org/wiki/NameDeinesWikis" > /dev/null
    sleep 5
  fi
done

Häh?

Kontaktiere mich, wenn die obigen Anweisungen dich komplett verwirren. Wir finden gemeinsam sicher eine Lösung. :-) – Alex