Mediawiki Backup

I built a internal Mediawiki site for my company. A easy place to combine useful information. I recently came up with a backup script that I find rather useful and since I’m a nice guy I decided to share it, ok ok I have an alter motive I admit it! I’m a believer in open source, the more people editing the software the better it gets, so by all means, if you notice something about this script and you think “what an idiot he could have just done it this way and it would have been eaiser / more efficent. by all means let me know! =) thanks!

#!/bin/sh

#--------------------------------------------
# CHANGE THESE OPTIONS TO MATCH YOUR SYSTEM !

wikiname=insight   # wiki name (used for backup filenames)
wikidb="wikidb"   # the database your wiki stores data in
wikidir=/var/www/   # the directory mediawiki is installed in
backupdir=~/bak   # the directory to write the backup to

#---------------
# END OF OPTIONS

timestamp=`date +%Y-%m-%d`
db="$backupdir/$wikiname-$timestamp.sql.gz"
xml="$backupdir/$wikiname-$timestamp.xml.gz"
file="$backupdir/$wikiname-$timestamp.files.tgz"

#---------------------------------
# Put the wiki into Read-only mode

echo
echo "Putting the wiki in Read-only mode..."
echo "$wgReadOnly = 'Dumping Database, Access will be restored in ~ 1 min.';" >> "$wikidir"/LocalSettings.php

echo
echo "creating database dump, $db..."
mysqldump --default-character-set=latin1 --user=XXXX --password=XXXX "$wikidb" | gzip > "$db" || exit $?

echo
echo "creating XML dump, $xml..."
cd "$wikidir/maintenance"
php -d error_reporting=E_ERROR dumpBackup.php --full | gzip > "$xml" || exit $?

echo
echo "creating file archive, $file..."
cd "$wikidir"
tar --exclude .svn -zcf "$file" . || exit $?

#-----------------------------------------
# Put the wiki back into read/write mode

echo
echo "Bringing the wiki out of Read-only mode..."

head -n-1 "$wikidir"/LocalSettings.php > "$backupdir"/LocalSettings.bak
cat "$backupdir"/LocalSettings.bak > "$wikidir"/LocalSettings.php
rm "$backupdir"/LocalSettings.bak

#-----------------------
# Creating TAR archive

echo
echo "Creating TAR archive"

tar -cf $backupdir/$wikiname-$timestamp.tar $db $xml $file
rm $db $xml $file

echo
echo "Done!"

#----
# END

There are no comments yet. Be the first and leave a response!

Leave a Reply

Wanting to leave an <em>phasis on your comment?

Trackback URL http://kaotickreation.com/2008/08/25/mediawiki-backup/trackback/