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.
