Contributed by Olaf Zevenboom
use at your own risk.
Original: http://brightbyte.de/page/MediaWiki_backup
#!/bin/sh
####################################################################
# #
# Basic Backup Script for MediaWiki. #
# Created by Daniel Kinzler, brightbyte.de, 2008 #
# #
# This script may be freely used, copied, modified and distributed #
# under the sole condition that credits to the original author #
# remain intact. #
# #
# This script comes without any warranty, use it at your own risk. #
# #
####################################################################
###############################################
# CHANGE THESE OPTIONS TO MATCH YOUR SYSTEM ! #
###############################################
#wikidb="daniel_wiki" # the database your wiki stores data in
wikidb="wikidb" # the database your wiki stores data in
#mysqlopt="-u username -ppassword" # any options used for interacting with mysql
mysqlopt="" # usually empty if username and password are provided in your
.my.cnf
wikidir=/var/www/intranet.artefact.com/mediawiki-1.5.0 # the directory mediawiki is installed in
backupdir=/home/storage/backupdump # the directory to write the backup to
##################
# END OF OPTIONS #
##################
# added by OZ
test ! -d $backupdir && mkdir $backupdir
wikiDBserver=`grep '^\$wgDB' $wikidir/LocalSettings.php |grep "DBserver" | cut --delimiter="=" -f2 | cut --delimiter="\"" -f2`
wikiDBname=`grep '^\$wgDB' $wikidir/LocalSettings.php |grep "DBname" | cut --delimiter="=" -f2 | cut --delimiter="\"" -f2`
wikiDBuser=`grep '^\$wgDB' $wikidir/LocalSettings.php |grep "DBuser" | cut --delimiter="=" -f2 | cut --delimiter="\"" -f2`
wikiDBpassword=`grep '^\$wgDB' $wikidir/LocalSettings.php |grep "DBpassword" | cut --delimiter="=" -f2 | cut --delimiter="\"" -f2`
wikidb=$wikiDBname
mysqlopt="--host=$wikiDBserver --user=$wikiDBuser --password=$wikiDBpassword --skip-lock-tables"
# end of additions
timestamp=`date +%Y-%m-%d`
dbdump="$backupdir/wiki-$timestamp.sql.gz"
xmldump="$backupdir/wiki-$timestamp.xml.gz"
filedump="$backupdir/wiki-$timestamp.files.tgz"
echo "Wiki backup. Database: $wikidb; Directory: $wikidir; Backup to: $backupdir"
echo
echo "creating database dump $dbdump..."
mysqldump --default-character-set=latin1 $mysqlopt "$wikidb" | gzip > "$dbdump" || exit $?
echo
echo "creating XML dump $xmldump..."
cd "$wikidir/maintenance"
php -d error_reporting=E_ERROR dumpBackup.php --full | gzip > "$xmldump" || exit $?
echo
echo "creating file archive $filedump..."
cd "$wikidir"
tar --exclude .svn -zcf "$filedump" . || exit $?
echo
echo "Done!"
echo "Files to copy to a safe place: $dbdump, $xmldump, $filedump"
#######
# END #
#######