#!/bin/bash
echo -e "\e[37;4;42m===== 开始滚回站点文件 =====\n\e[0m"
read -p "请输入站点文件目录绝对路径,例如 /root/website :" web_dir
if [[ -d ${web_dir} ]];then
mkdir /www && mv ${web_dir} /www
chown -R nginx:nginx /www
chmod -R 755 /www
fi
if [[ $? -eq 0 ]];then
echo -e "\e[1;33;44m===== 站点文件滚回成功,站点根目录为 /www =====\n===== 请手动修改nginx相关配置,并重启 =====\n\e[0m"
else
echo -e "\e[1;33;44m===== 站点文件滚回失败,请检查目录是否有误 =====\n\e[0m" && exit 0
fi
echo -e "\e[37;4;42m===== 开始滚回数据库 =====\n\e[0m"
read -p "请输入sql文件绝对路径,例如 /root/website.sql :" sql_file
read -p "请输入数据库root密码:" passwd
read -p "请输入新建数据库名称:" new_db
read -p "请输入新建数据库管理账户名:" new_user
read -p "请输入新建数据库管理账号密码:" new_user_pwd
if [[ -f ${sql_file} ]] && [[ ! -z ${passwd} ]] && [[ ! -z ${new_db} ]] && [[ ! -z ${new_user} ]] && [[ ! -z ${new_user_pwd} ]];then
mysql -uroot -p"${passwd}" << EOF
set global validate_password_policy=LOW;
CREATE DATABASE ${new_db} DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER '${new_user}'@'%' IDENTIFIED BY '${new_user_pwd}';
GRANT ALL PRIVILEGES ON ${new_db}.* TO '${new_user}'@'%';
use ${new_db};
source ${sql_file};
flush privileges;
quit
EOF
fi
if [[ $? -eq 0 ]];then
echo -e "\e[1;33;44m===== 数据库滚回成功,库名:${new_db},用户名:${new_user},密码:${new_user_pwd} =====\n===== 请手动修改站点目录下DB配置文件 =====\n\e[0m"
else
echo -e "\e[1;33;44m===== 数据库滚回失败,请检查sql路径或db_root密码是否有误 =====\n\e[0m" && exit 0
fi
注:
数据库滚回后,若更换了域名或文件路径,还需对数据表中相关字段内容进行修改。
例:
UPDATE `typecho_options` SET `value` = '新域名' WHERE `typecho_options`.`name` = 'siteUrl' AND `typecho_options`.`user` =0;
UPDATE `typecho_comments` SET `url` = REPLACE(`url`,'旧域名','新域名');
UPDATE `typecho_comments` SET `text` = REPLACE(`text`,'旧域名','新域名');
UPDATE `typecho_comments` SET `mail` = REPLACE(`mail`,'旧域名','新域名');