Browse Source

adweb3 建站脚本,主题导入脚本,v2临时服务器备份脚本

chenlei1231 4 months ago
parent
commit
b343167d72
3 changed files with 139 additions and 3 deletions
  1. 40 0
      back_template.sh
  2. 5 3
      create-wpsite.sh
  3. 94 0
      create_wp_template.sh

+ 40 - 0
back_template.sh

@@ -0,0 +1,40 @@
+#!/bin/bash
+
+#### Back Wp Site
+#### 临时服务器自动备份站点数据库和已经打包项目文件到指定目录
+#### Author: chenpeiqing
+#### Date: 2024-11-18
+#### Usage: sh back_template.sh [SITE_CODE]
+#### 示例: sh back_template 2408210vakv9
+
+# 检查是否提供了一个参数
+if [ -z "$1" ]; then
+  echo "Usage: $0 <site code>"
+  exit 1
+fi
+
+DEST_DIR="/home/ec2-user/template_temp"
+SOURCE_DIR="/var/www/"
+DB_NAME="$1"
+DB_USER="root"
+DB_PASSWORD="UXG2YHf8YbrQTvFJKej7CnhLfGEWB44B"
+DATE=$(date +"%Y%m%d%H%M%S")
+
+# 打包源目录
+TAR_FILE="$DEST_DIR/$1.tar.gz"
+cd $SOURCE_DIR;
+
+tar -czf $TAR_FILE $1
+
+# 导出数据库
+DB_DUMP_FILE="$DEST_DIR/$1.sql"
+mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$DB_DUMP_FILE"
+
+# 检查打包和数据库导出是否成功
+if [ $? -eq 0 ]; then
+  echo "Directory packed to $TAR_FILE"
+  echo "Database dumped to $DB_DUMP_FILE"
+else
+  echo "An error occurred during packaging or database export"
+  exit 1
+fi

+ 5 - 3
create-wpsite.sh

@@ -27,7 +27,7 @@ export PATH=/usr/local/bin:$PATH
 #创建站点目录
 mkdir /usr/local/wwwroot/$FILE_NAME
 #打包模板站包
-cd /usr/local/wwwroot/$TEMPLATE_SOURCE_ID
+cd /usr/local/wwwtemplate/$TEMPLATE_SOURCE_ID
 tar -czf $TEMPLATE_SOURCE_ID.tar.gz *
 mv $TEMPLATE_SOURCE_ID.tar.gz /usr/local/wwwroot/$FILE_NAME
 
@@ -57,6 +57,7 @@ sed -i "s:$TEMPLATE_SOURCE_ID:$FILE_NAME:g" /usr/local/wwwroot/$FILE_NAME/wp-con
 end_time=$(date +'%s')
 echo "站点【"$FILE_NAME"】wp-config.php配置修改完成,共计花费:"$((end_time - start_time))"s"
 
+#创建数据库,赋权
 echo 'create_database_start'
 start_time=$(date +'%s')
 mysql -h$RDS_HOST -u$RDS_ADMIN -p$RDS_PWD<< EOF
@@ -70,16 +71,16 @@ end_time=$(date +'%s')
 echo "创建数据库花费:"$((end_time - start_time))"s"
 echo 'create_database_end'
 
-
+#导入数据库
 start_time=$(date +'%s')
 mysql -u$RDS_ADMIN -p$RDS_PWD $FILE_NAME < /opt/adweb3/temp_package/$TEMPLATE_SOURCE_ID.sql
 end_time=$(date +'%s')
 echo "【"$FILE_NAME"】网站导入数据库完成,共计花费:"$((end_time - start_time))"s"
 
+#更新数据库连接配置
 echo 'update_wp-config_start'
 start_time=$(date +'%s')
 
-cp /opt/adweb3/config/wp-cli.phar /usr/local/wwwroot/$FILE_NAME
 sed -i "s:FILE_NAME:$FILE_NAME:g" /usr/local/wwwroot/$FILE_NAME/domain.txt
 sed -i "s:'$TEMPLATE_SOURCE_ID':'$FILE_NAME':g" /usr/local/wwwroot/$FILE_NAME/wp-config.php
 end_time=$(date +'%s')
@@ -113,6 +114,7 @@ cp /opt/adweb3/nginx_template/wp-site.conf /usr/local/openresty/nginx/vhost/$FIL
 
 sed -i "s:CUSTOM_DOMAIN:$DOMAIN_NAME:g" /usr/local/openresty/nginx/vhost/$FILE_NAME.conf
 sed -i "s:SITE_CODE:$FILE_NAME:g" /usr/local/openresty/nginx/vhost/$FILE_NAME.conf
+sed -i "s:wwwtemplate:wwwroot:g" /usr/local/openresty/nginx/vhost/$FILE_NAME.conf
 echo "开始重启nginx配置"
 /usr/local/openresty/nginx/sbin/nginx -s reload
 echo "nginx配置重启完成"echo "开始重启nginx配置"

+ 94 - 0
create_wp_template.sh

@@ -0,0 +1,94 @@
+#!/bin/bash
+
+#### Create WP Site
+#### v3 自动从临时服务器拉取模板站shell脚本,并自动化部署
+#### Author: chenpeiqing
+#### Date: 2024-11-18
+#### Usage: sh create_wp_tempate.sh [2408210vakv9]
+#### 示例: sh create-wpsite.sh 2408210vakv9 wp063
+
+#模板 site code
+SITE_CODE=$1
+
+RDS_HOST='127.0.0.1'
+RDS_ADMIN='root'
+RDS_PWD='Initial0_123'
+
+#从临时服务器下载项目文件
+echo '从临时服务器下载项目文件'
+scp  -i /home/ubuntu/ningxia.pem -P 9922 ec2-user@52.83.132.56:/home/ec2-user/template_temp/$SITE_CODE.tar.gz /home/ubuntu/template_temp
+echo "从临时服务器下载项目文件花费:"$((end_time - start_time))"s"
+echo '从临时服务器下载项目文件结束'
+
+#移动项目文件到目标目录
+mv /home/ubuntu/template_temp/$SITE_CODE.tar.gz /usr/local/wwwtemplate/
+echo "移动项目文件到目标目录花费:"$((end_time - start_time))"s"
+echo "解压模板站"
+cd /usr/local/wwwtemplate/
+tar -xzf $SITE_CODE.tar.gz
+#解压后删除压缩文件
+rm -f $SITE_CODE.tar.gz
+echo "解压模板站花费:"$((end_time - start_time))"s"
+
+#从临时服务器下载数据库
+echo '从临时服务器下载数据库'
+scp  -i /home/ubuntu/ningxia.pem -P 9922 ec2-user@52.83.132.56:/home/ec2-user/template_temp/$SITE_CODE.sql /home/ubuntu/template_temp
+echo "从临时服务器下载数据库花费:"$((end_time - start_time))"s"
+echo '从临时服务器下载数据库结束'
+
+#创建数据库,赋权
+echo 'create_database_start'
+start_time=$(date +'%s')
+mysql -h$RDS_HOST -u$RDS_ADMIN -p$RDS_PWD<< EOF
+  DROP DATABASE IF EXISTS $SITE_CODE;
+  CREATE DATABASE $SITE_CODE CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
+  GRANT ALL ON $SITE_CODE.* TO 'adweb'@'localhost';
+  FLUSH PRIVILEGES;
+  exit
+EOF
+end_time=$(date +'%s')
+echo "创建数据库花费:"$((end_time - start_time))"s"
+echo 'create_database_end'
+
+#导入数据库
+start_time=$(date +'%s')
+mysql -u$RDS_ADMIN -p$RDS_PWD $SITE_CODE < /home/ubuntu/template_temp/$SITE_CODE.sql
+end_time=$(date +'%s')
+echo "【"$SITE_CODE"】网站导入数据库完成,共计花费:"$((end_time - start_time))"s"
+
+#更新数据库连接配置
+echo 'update_wp-config_start'
+start_time=$(date +'%s')
+
+sed -i "s:FILE_NAME:$SITE_CODE:g" /usr/local/wwwtemplate/$SITE_CODE/domain.txt
+sed -i "s:'RqBQxctjakHCJVq8kmmYHQKZQGU4YMUH':'2024_RqBQxctjakHCJVq8kmmYHQKZQGU4YMUH':g" /usr/local/wwwtemplate/$SITE_CODE/wp-config.php
+end_time=$(date +'%s')
+echo "更新WP配置文件花费:"$((end_time - start_time))"s"
+echo 'update_wp-config_end'
+
+# 替换老域名到数据库 wp-cli
+echo 'UPDATE_WP_DOMAIN_START'
+start_time=$(date +'%s')
+cd /usr/local/wwwtemplate/$SITE_CODE
+cp /opt/adweb3/config/wp-cli.phar ./
+php ./wp-cli.phar search-replace "https://$SITE_CODE.adwebcloud.com" "https://$SITE_CODE.adweb3.topxuetang.com" --allow-root
+rm -rf wp-cli.phar
+end_time=$(date +'%s')
+echo "更新WP域名花费:"$((end_time - start_time))"s"
+echo 'UPDATE_WP_DOMAIN_END'
+
+
+# 创建nginx配置文件,并reload nginx
+#nginx
+echo 'UPDATE_NGINX_START'
+start_time=$(date +'%s')
+
+cp /opt/adweb3/nginx_template/wp-template.conf /usr/local/openresty/nginx/vhost/template/$SITE_CODE.conf
+sed -i "s:SITE_CODE:$SITE_CODE:g" /usr/local/openresty/nginx/vhost/template/$SITE_CODE.conf
+
+echo "开始重启nginx配置"
+/usr/local/openresty/nginx/sbin/nginx -s reload
+echo "nginx配置重启完成"echo "开始重启nginx配置"
+
+# 修改项目所有者为www-data
+chown -R www-data:www-data /usr/local/wwwtemplate/$SITE_CODE/