Hanfburgwiki:Backup

From Hanfburgwiki


Ein Backup des gesamten Wikis (Artikel, History, Bilder) lässt sich mit folgenden Bash-Scripts anlegen:

backup-art.sh

Speichert nur Artikel und History.

#!/bin/bash

base='http://editthis.info/hanfburgwiki'
imgbase='http://editthis.info'
namespaces="{0,1,2,3,4,5,6,12}"
export http_proxy="http://127.0.0.1:8118" # TOR via Privoxy

dir=`date +%y.%m.%d-%H.%M.%S`-art
mkdir $dir
cd $dir

pages="$(
 curl "$base/Special:Allpages?namespace=$namespaces" | \\
  grep '<hr />' | \\
  sed 's/.*<table style="background: inherit;" border="0" width="100%">\\(.*\\)<\\/table>.*/$
  sed 's/<\\/tr>//g' | \\
  sed 's/<\\/td>/<\\/td>\
/g' | \\
  sed 's/^.*title="\\(.*\\)".*$/\\1/g' | \\
  grep -v '^$'
)"
echo "$pages" >pages.txt

data="curonly=true&pages=$pages"
curl $base'/?title=Special:Export&action=submit' -d "$data" >articles-recent.xml

data="pages=$pages"
curl $base'/?title=Special:Export&action=submit' -d "$data" >articles-all.xml

backup-img.sh

Speichert nur Bilder o.a. Uploads.

#!/bin/bash

base='http://editthis.info/hanfburgwiki'
imgbase='http://editthis.info'
export http_proxy="http://127.0.0.1:8118" # TOR via Privoxy

dir=`date +%y.%m.%d-%H.%M.%S`-img
mkdir $dir
cd $dir

imgbase_e="$(echo "$imgbase" | sed 's/\\//\\\\\\//g')"

curl $(
 curl "$base/Special:Imagelist" \\
 | grep '>desc</a>' \\
 | sed 's/^.*href="\\(\\/images\\/hanfburgwiki\\/[^"]*\\)">.*$/\\1/g' \\
 | sed 's/^\\(.*\\)$/-O '"$imgbase_e"'\\1/g'
)

Ergebnis

Die Scripte erstellen z.B. folgende Dateistrukturen:

backup-art.sh:

08.05.12-13.11.00-art
|-- articles-all.xml
|-- articles-recent.xml
`-- pages.txt

backup-img.sh:

08.05.12-14.00.00-img
|-- Bluete.jpg
|-- Cannabis_male_flowers.JPG
|-- Ebbeflut.jpg
|-- Hanf.jpg
|-- HanfburgWiki.png
|-- Haschisch.jpg
|-- Indica-sativa-leaves.jpg
|-- Indica.jpg
|-- Kelvin.png
|-- Knospe.jpg
|-- Lsr.jpg
|-- Lsrspektrum.jpg
|-- Marihuana.jpg
|-- Natriumdampf-Lampe.gif
|-- Ndlspektrum.jpg
|-- Outdoor.jpg
|-- Ruderalis.jpg
`-- Sativa.jpg

Die XML-Dateien werden mit der Seiten exportieren Funktion des Wikis generiert und können von Admins mit der Seiten importieren Funktion wieder importiert werden.

In der Datei pages.txt sind alle Artikel aufgelistet, die exportiert wurden, sortiert nach Namespace.

Die Bilder müssen einzeln mit der Hochladen Funktion importiert werden, was aber auch automatisiert werden kann.

Personal tools