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
No tips yet.
Be the first to tip!

Like this post? Tip with bitcoin!

16mMRWykMT32soqbatRF1EuAFo2q7h3Wov

If you enjoyed reading this post, please consider tipping me using Bitcoin. Each post gets its own unique Bitcoin address so by tipping you're not only making my continued efforts possible but telling me what you liked.

Bash History

If your anything like me you spend a lot of time at a bash terminal, weather I’m upgrading this very WordPress blog, or any other sites I run I usually do so over an SSH connection.

One thing I come to use quite often is my history. often times I don’t quite recall which switches I used to run a command I may have used yesterday. by typing “history” at the command line I get the past 1000 commands (500 by default on most systems) I ran. while thats a bit much lets say I wanted to recall where I saved the last tar archive I created. a simple “history | grep tar” will show all the lines that contain the word tar.

now for some useful options for how your systems history functions, I kicked my system up to record the last 1000 commands you can adjust this by making some changes to the environment in your personal bash configuration file (~/.bashrc) or in the global bash configuration file (/etc/bash.bashrc).

export HISTCONTROL=ignoreboth
export HISTSIZE=1000

the first line will tell bash to ignore lines that match the last command you ran so if you run ps -awfux 3 times in a row (even if its over a couple hours) it will only record a single instance of that command.

the second line defines the size of the history file, in my case I chose to save the past 1000 lines.

No tips yet.
Be the first to tip!

Like this post? Tip with bitcoin!

12Z6uAhD4ffm7zKikggCspczMSVgmaEBuu

If you enjoyed reading this post, please consider tipping me using Bitcoin. Each post gets its own unique Bitcoin address so by tipping you're not only making my continued efforts possible but telling me what you liked.