Резервное копирование и восстановление wordpress
Перейти к навигации
Перейти к поиску
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Представлен скрипт для создания резервных копий, восстановления и обновления wordpress.
#!/bin/bash
#вставьте свои значения
path="/www/youpath" #Путь до wordpress
BACKUPPATH="/root/backup" #Куда бекапим
MYSQLUSER="user" #mysql юзер
MYSQLHOST="localhost" #хост mysql
WORDPRESSDB="wordpressdb" #база данных wordpress
arg="$1"
if [ -z "$arg" ]
then
echo -e "Введите:
\e[0;34mupgrade\\e[0m или \e[0;34m -u \\e[0m для обновления\n\
\e[0;34mbackup\\e[0m или \e[0;34m -b \\e[0m для архивации всех файлов и базы данных wordpress\n\
\e[0;34mextensions\\e[0m или \e[0;34m -e \\e[0m для обновления плагинов\n\
\e[0;34mrestorewordpress <name>\\e[0m или \e[0;34m -w <name>\\e[0m для восстановления wordpress из бекапа\n\
\e[0;34mrestoredb <name>\\e[0m или \e[0;34m -d <name>\\e[0m для восстановления базы данных wordpress из бекапа"
exit 1
elif [ `id -u` != 0 ]
then
echo "Вы не root"
exit 1
fi
case $arg in
backup | -b)
echo "start backup datebase. Wait..."
nice -n 19 mysqldump -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB -c |\
nice -n 19 /bin/gzip -9 > $BACKUPPATH/wordpress-db-$(date '+%Y%m%d').sql.gz
echo "backup of database completed"
echo "start backup wordpress folder. Wait..."
# Для исключения файла или каталога используйте --exclude="./youdir"
# точка обязательна и не ставить слэш в конце имени директории
cd $path; nice -n 19 tar -cvzf $BACKUPPATH/wordpress-$(date '+%Y%m%d').tar.gz . --exclude="./wiki" --exclude="./upload"
echo "backup wordpress completed"
exit 0
;;
restorewordpress | -w)
[[ -z "$2" ]] && echo "Введите назазвание бекапа с wordpress" && exit 1
backup_wordpress="$2"
echo "restore wordpress files"
tar xzvf "$backup_wordpress" -C $path --strip-components=1
echo "done"
exit 0
;;
restoredb | -d)
[[ -z "$2" ]] && echo "Введите название бекапа базы данных wordpress" && exit 1
wordpress_db="$2"
echo "restore database"
gunzip -c "$wordpress_db" | mysql -h $MYSQLHOST -u $MYSQLUSER -p $WORDPRESSDB
echo "done"
exit 0
;;
upgrade | -u)
wordpress="$2"
arch=`echo "$wordpress" | awk -F. '{ print $NF}'`
if [ "$arch" = "zip" -o "$arch" = "gz" ]
then
echo "prepare to upgrade"
[ -d $path/upload/ ] || mkdir $path/upload/
cp -v -R $path/wp-content/ $path/wp-config.php $path/.htaccess $path/upload/
rm $path/wp*.php $path/license.txt $path/readme.html $path/xmlrpc.php
rm -rf $path/wp-admin/ $path/wp-includes/
cp $path/upload/wp-config.php $path
echo "update wordpress"
if [ $arch = zip ]
then
unzip -o $wordpress -d $path
elif [ $arch = gz ]
then
tar xzf $wordpress -C $path --strip-components=1
else
exit 1
fi
cp -rf $path/upload/* $path
rm -rf $path/upload
echo "====================================================================================="
echo "==== For update database you need open <yousite>/wp-admin/upgrade.php in browser ===="
echo "====================================================================================="
else
echo "Неизвестный тип архива, автоопределение работает только для zip и tar.gz"
exit 1
fi
esac
echo "is all!!"
exit 0