Резервное копирование и восстановление mediawiki: различия между версиями
Перейти к навигации
Перейти к поиску
Langator (обсуждение | вклад) (Новая страница: «__NOTOC__ Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki ...») |
Langator (обсуждение | вклад) м |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | + | [[Category:Backup]] | |
+ | [[Category:Script]] | ||
Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki и расширений. | Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki и расширений. | ||
Особенность обновления расширений заключается в том, что контроль версий поддерживается через svn. | Особенность обновления расширений заключается в том, что контроль версий поддерживается через svn. | ||
Строка 62: | Строка 63: | ||
restorewiki | -w) | restorewiki | -w) | ||
− | [[ -z "$2" ]] && echo "Введите назазвание бекапа с wiki" | + | [[ -z "$2" ]] && echo "Введите назазвание бекапа с wiki" && exit 1 |
backup_wiki="$2" | backup_wiki="$2" | ||
Строка 72: | Строка 73: | ||
restoredb | -d) | restoredb | -d) | ||
− | [[ -z "$2" ]] && echo "Введите название бекапа базы данных wiki" | + | [[ -z "$2" ]] && echo "Введите название бекапа базы данных wiki" && exit 1 |
wiki_wikidb="$2" | wiki_wikidb="$2" |
Текущая версия на 05:18, 17 марта 2012
Представлен скрипт для создания резервных копий, восстановления, обновления mediawiki и расширений. Особенность обновления расширений заключается в том, что контроль версий поддерживается через svn.
#!/bin/bash
ColorOff='\\e[0m' # Text Reset
BWhite='\\e[1;37m' # Bold White
Blue='\e[0;34m'
#Обязательно вставьте свои значения
WIKIPATH="/www/wiki" #директория установки wiki
BACKUPPATH="/root/backup" #Куда бекапим
MYSQLUSER="user" # mysql пользователь
MYSQLHOST="localhost" # Хост mysql
WIKIDB="wikidb" #mysql база wiki
mediawiki=$1
if [ -z $mediawiki ]
then
echo -e " Введите название архива с wiki для обновления\n\
\e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wiki\n\
\e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\
\e[0;34mrestorewiki <name>\\e[0m или \e[0;34m -w <name>\\e[0m для восстановления wiki из бекапа\n\
\e[0;34mrestoredb <name>\\e[0m или \e[0;34m -d <name>\\e[0m для восстановления базы данных wiki из бекапа"
exit 1
elif [ `id -u` != 0 ]
then
echo Вы не root
exit 1
fi
dir=`pwd`
case $mediawiki in
backup | -b)
echo "start backup datebase. Wait..."
nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB -c |\
nice -n 19 /bin/gzip -9 > $BACKUPPATH/wiki-wikidb-$(date '+%Y%m%d').sql.gz
echo "backup of database completed"
echo "start backup wiki folder. Wait..."
nice -n 19 tar -czf $BACKUPPATH/aidalinux-wiki-$(date '+%Y%m%d').tar.gz $WIKIPATH
echo "backup wiki completed"
exit 0
;;
extensions | -e)
for extensions in `ls $WIKIPATH/extensions`
do
cd $WIKIPATH/extensions/"$extensions"
svn update
cd ..
done
exit 0
;;
restorewiki | -w)
[[ -z "$2" ]] && echo "Введите назазвание бекапа с wiki" && exit 1
backup_wiki="$2"
echo "restore wiki files"
tar xzvf "$backup_wiki" -C $WIKIPATH --strip-components=1
echo "done"
exit 0
;;
restoredb | -d)
[[ -z "$2" ]] && echo "Введите название бекапа базы данных wiki" && exit 1
wiki_wikidb="$2"
echo "restore datebase"
gunzip -c "$wiki_wikidb" | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WIKIDB
echo "done"
exit 0
;;
esac
#Определение расширения архива с mediawiki
arch=`echo $mediawiki | awk -F. '{ print $NF}'`
if [ "$arch" = gz ]
then
echo "start update mediawiki"
else
echo "Вы ошиблись в вводе аргумента"
exit 1
fi
cd "$dir"
#update mediawiki
tar xzf $mediawiki -C $WIKIPATH --strip-components=1
echo "update database"
php $WIKIPATH/maintenance/update.php
echo "is all!!"