|
#!/bin/bash |
|
|
|
echo "" |
|
echo "MediaWiki Backup Starting at `date`." |
|
echo " -------------------------------" |
|
|
|
BackupLOC='/backup' |
|
BKDATE=`date +%w-%Y%m%d` |
|
|
|
mkdir -p ${BackupLOC} |
|
cd /var/www/ |
|
for SITE in `ls */LocalSettings.php |sed 's/\/LocalSettings.php//g'` |
|
do |
|
echo " Starting on site ${SITE} @ `date`" |
|
DBTYPE=`grep '$wgDBtype' ${SITE}/LocalSettings.php |awk '{ print $3 }' |sed 's/"//g' |sed 's/;//g'` |
|
DBNAME=`grep '$wgDBname' ${SITE}/LocalSettings.php |awk '{ print $3 }' |sed 's/"//g' |sed 's/;//g'` |
|
DBUSER=`grep '$wgDBuser' ${SITE}/LocalSettings.php |awk '{ print $3 }' |sed 's/"//g' |sed 's/;//g'` |
|
DBPASS=`grep '$wgDBpassword' ${SITE}/LocalSettings.php |awk '{ print $3 }' |sed 's/"//g' |sed 's/;//g'` |
|
BKDIR=/tmp/mediawiki-backup/${SITE} |
|
mkdir -p ${BKDIR}/ |
|
|
|
#################################################################################### |
|
|
|
echo -n " ${SITE}: Starting Database Repair..." |
|
if MYSQL_PWD="${DBPASS}" \ |
|
mysqlcheck ${DBNAME} --auto-repair --user=${DBUSER} 1>/dev/null; |
|
then |
|
echo "Done!" |
|
else |
|
echo "Failed to repair wiki database!!!!" |
|
echo " ${SITE}: Continuing anyways" |
|
fi |
|
|
|
#################################################################################### |
|
|
|
echo -n " ${SITE}: Creating SQL Database Backup..." |
|
mysqldump ${DBNAME} |gzip > /var/www/${DBNAME}-${BKDATE}.sql.gz |
|
echo "Done!" |
|
|
|
#################################################################################### |
|
|
|
cd ${BKDIR}/ |
|
echo -n " ${SITE}: Removing old backups..." |
|
rm -f ${BackupLOC}/${DBNAME}-`date +%w`-*.tgz |
|
echo "Done!" |
|
echo -n " ${SITE}: Creating new backup (tar file)..." |
|
tar -czPf ${BackupLOC}/${DBNAME}-${BKDATE}.tgz \ |
|
/var/www/${DBNAME}-${BKDATE}.sql.gz \ |
|
/var/www/${SITE}/LocalSettings.php \ |
|
/var/www/${SITE}/images \ |
|
/etc/nginx/mediawiki.conf \ |
|
/etc/nginx/sites-enabled/${DBNAME}.conf |
|
echo "Done!" |
|
|
|
#################################################################################### |
|
|
|
echo -n " ${SITE}: Removing temporary files..." |
|
rm /var/www/${DBNAME}-${BKDATE}.sql.gz |
|
echo "Done!" |
|
#################################################################################### |
|
|
|
echo " -------------------------------" |
|
done |
|
echo "MediaWiki Backup Complete." |