MEDIAWIKIbackup-DBwiki privat-kanzler.sh

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Das Skript "MEDIAWIKIbackup-DBwiki_privat-kanzler.sh" dient zur Sicherung des Mediawikis "wiki_privat" (Datenbank und Installationsverzeichnis).

#!/bin/bash
#
# Name         MEDIAWIKIbackup-DBwiki_privat-kanzler.sh
# Author       Michael Kuhn
# Date         2010.10.16
# Description  Basic backup script for a Mediawiki installation

# set -x

##### CONFIGURATION #####
 
# The database the wiki stores data in
MEDIAWIKIDATABASE="wiki_privat"
#
USER=root
#
PASSWORD=xxxxxx
#
# The directory Mediawiki is installed in 
MEDIAWIKIPATH=/var/www/wiki_privat
#
# The directory to write the backup to
BACKUPPATH=~/backup/mediawiki
#
# File system where the BACKUPPATH resides (according to "df -k")
BACKUPFILESYSTEM=/dev/md0
#
# An e-mail address to notify
EMAILTO=xxx@xxx.xx


##### MAIN #####

TIMESTAMP=$(date -I)
DATABASEDUMP=${BACKUPPATH}/DBSAVE${MEDIAWIKIDATABASE}-${TIMESTAMP}.sql.bz2
XMLFULLDUMP=${BACKUPPATH}/DBSAVE${MEDIAWIKIDATABASE}-full-${TIMESTAMP}.xml.bz2
XMLCURRENTDUMP=${BACKUPPATH}/DBSAVE${MEDIAWIKIDATABASE}-current-${TIMESTAMP}.xml
.bz2
FILEDUMP=${BACKUPPATH}/${MEDIAWIKIDATABASE}-${TIMESTAMP}.files.bz2

echo 
echo "Mediawiki backup"
echo "  Database : ${MEDIAWIKIDATABASE}"
echo "  Directory: ${MEDIAWIKIPATH}"
echo "  Backup to: ${BACKUPPATH}"
echo
echo "Creating database dump ${DATABASEDUMP}..."
/usr/bin/mysqldump -u ${USER} --password=${PASSWORD} \
  --quick ${MEDIAWIKIDATABASE} |\
  bzip2 -c > ${DATABASEDUMP}          || exit $?
if [ $? = 0 ]
  then
  ( printf "To: ${EMAILTO}\n" ;
    printf "Subject: SUCCESS: $(uname -n) ";
    printf "$(df -k | grep ${BACKUPFILESYSTEM} | awk '{print $5}')% ";
    printf "dump ${MEDIAWIKIDATABASE} (hosttime $(date -I))\n";
    printf "\n" ) | /usr/sbin/sendmail -f ${EMAILTO} -t
elif [ $? != 0 ]
  then
  ( printf "To: ${EMAILTO}\n" ;
    printf "Subject: ALARM!!! $(uname -n) ";
    printf "Creating dump ${DATABASEDUMP} NOT successful! ";
    printf "$(hosttime $(date -I))\n";
    printf "\n" ) | /usr/sbin/sendmail -f ${EMAILTO} -t
fi

echo
echo "Creating XML full dump ${XMLFULLDUMP}..."
cd ${MEDIAWIKIPATH}/maintenance
php -d error_reporting=E_ERROR dumpBackup.php --full | \
  bzip2 -c > ${XMLFULLDUMP}           || exit $?

echo
echo "Creating XML current dump ${XMLCURRENTDUMP}..."
cd ${MEDIAWIKIPATH}/maintenance
php -d error_reporting=E_ERROR dumpBackup.php --current | \
  bzip2 -c > ${XMLCURRENTDUMP}        || exit $?
 
echo
echo "Creating file archive ${FILEDUMP}..."
cd "${MEDIAWIKIPATH}"
tar --exclude .svn -zcf ${FILEDUMP} . || exit $?
 
echo
echo "Done!"
echo
echo "Files to copy to a safe place:"
echo "- ${DATABASEDUMP}"
echo "- ${XMLFULLDUMP}"
echo "- ${XMLCURRENTDUMP}"
echo "- ${FILEDUMP}"

##### END #####