Hanfburgwiki:Backup
From Hanfburgwiki
(Difference between revisions)
| Line 7: | Line 7: | ||
imgbase='http://editthis.info' | imgbase='http://editthis.info' | ||
| - | dir=`date +%y.%m.%d-%H.%M.%S` | + | dir=`date +%y.%m.%d-%H.%M.%S` |
mkdir $dir | mkdir $dir | ||
cd $dir | cd $dir | ||
| Line 78: | Line 78: | ||
done | done | ||
</nowiki></pre> | </nowiki></pre> | ||
| + | |||
| + | Das Script erstellt z.B. folgende Dateistruktur: | ||
| + | |||
| + | <pre><nowiki> | ||
| + | 08.05.04-15.55.54 | ||
| + | |-- articles-all.xml | ||
| + | |-- articles-recent.xml | ||
| + | |-- 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 | ||
| + | `-- pages.txt | ||
| + | </nowiki></pre> | ||
| + | |||
| + | Die XML-Dateien werden mit der [[Special:Export|Seiten exportieren]] Funktion des Wikis generiert und können von Admins mit der [[Special:Import|Seiten importieren]] Funktion wieder importiert werden. | ||
| + | |||
| + | Die Bilder müssen einzeln mit der [[Special:Upload|Hochladen]] Funktion importiert werden, was aber auch automatisiert werden kann. | ||
| + | |||
| + | In der Datei pages.txt sind alle Artikel aufgelistet, die exportiert wurden, sortiert nach Namespace. | ||
Revision as of 14:00, 4 May 2008
Ein Backup des gesamten Wikis (Artikel, History, Bilder) lässt sich mit folgendem Bash-Script anlegen:
#!/bin/bash
base='http://editthis.info/hanfburgwiki'
imgbase='http://editthis.info'
dir=`date +%y.%m.%d-%H.%M.%S`
mkdir $dir
cd $dir
function getPages {
# $1: namespace id
curl "$base/Special:Allpages?namespace=$1" 2>/dev/null | \\
grep '<hr />' | \\
sed 's/.*<table style="background: inherit;" border="0" width="100%">\\(.*\\)<\\/table>.*/\\1/' | \\
sed 's/<\\/tr>//g' | \\
sed 's/<\\/td>/<\\/td>\
/g' | \\
sed 's/^.*title="\\(.*\\)".*$/\\1/g'
}
echo collecting pages
pages="$(
getPages 0 # main
getPages 1 # talk
getPages 2 # user
getPages 3 # user talk
getPages 4 # wiki
getPages 5 # wiki talk
getPages 6 # image
getPages 7 # image talk
getPages 8 # mediawiki
getPages 9 # mediawiki talk
getPages 10 # template
getPages 11 # template talk
getPages 12 # help
getPages 13 # help talk
getPages 14 # category
getPages 15 # category talk
)"
pages=$(echo "$pages" | grep -v '^$')
echo "$pages" >pages.txt
# recent versions
echo "getting articles: recent versions"
data="curonly=true&pages=$pages"
curl $base'/?title=Special:Export&action=submit' -d "$data" 2>/dev/null >articles-recent.xml
# all versions
echo "getting articles: all versions"
data="pages=$pages"
curl $base'/?title=Special:Export&action=submit' -d "$data" 2>/dev/null >articles-all.xml
# images
echo getting images
images=`echo "$pages" | grep '^Image:' | sed 's/Image://'`
mkdir img
cd img
echo "$images" | while read image
do
image="`echo "$image" | sed 's/ /_/g'`"
src=`curl "$base/Image:$image" 2>/dev/null | grep 'id="file"'`
src=`echo "$src" | cut -c 56-`
src=`echo "$src" | cut -c $(expr index "$src" '/')-`
src=`echo "$src" | cut -c -$(expr index "$src" '"' - 1)`
echo " $image"
curl "$imgbase$src" >"$image" 2>/dev/null
done
Das Script erstellt z.B. folgende Dateistruktur:
08.05.04-15.55.54 |-- articles-all.xml |-- articles-recent.xml |-- 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 `-- pages.txt
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.
Die Bilder müssen einzeln mit der Hochladen Funktion importiert werden, was aber auch automatisiert werden kann.
In der Datei pages.txt sind alle Artikel aufgelistet, die exportiert wurden, sortiert nach Namespace.
