#!/bin/bash

#### Remove WP Site
#### v3 删除该临时站点资源并将其备份到指定目录,定期删除
#### Author: chenpeiqing
#### Date: 2024-12-05
#### Usage: sh remove-and-bak-wpsite.sh [SITE_CODE]
#### 示例: sh remove-and-bak-wpsite.sh 2408210vakv9

SITE_CODE=$1

# 定义要检查的目录路径

FROM_DIR="/usr/local/wwwroot/"

DIR_TO_CHECK=$FROM_DIR$SITE_CODE

# 定义目标目录路径
TARGET_DIR="/opt/adweb3/wp_bak/"

# 定义数据库连接信息
RDS_HOST='127.0.0.1'
RDS_ADMIN='root'
RDS_PWD='Initial0_123'

# 检查目录是否存在
if [ -d "$DIR_TO_CHECK" ]; then

  #############
  ## 备份代码 ##
  ############
  # 目录存在,执行移动操作

  cd $FROM_DIR
  echo "开始打包项目到$TARGET_DIR$SITE_CODE.tar.gz"
  sudo tar -czf $TARGET_DIR$SITE_CODE.tar.gz $SITE_CODE

  # 检查移动操作是否成功
  if [ $? -eq 0 ]; then
    echo "目标项目已经成功打包到$TARGET_DIR$SITE_CODE.tar.gz"

    sudo rm -rf $DIR_TO_CHECK

    if [ $? -eq 0 ]; then
      echo "打包后删除该项目目录$SITE_CODE"
    fi
  else
    echo "Failed to move the directory."
  fi

  #############
  # 备份数据库 #
  ############

  mysqldump --user=$RDS_ADMIN --password=$RDS_PWD --host=localhost --port=3306 --no-create-db --default-character-set=utf8 $SITE_CODE > $TARGET_DIR$SITE_CODE.sql

  # 检查 MySQL 命令是否成功执行
  if [ $? -eq 0 ]; then
    echo "Database $SITE_CODE has been backup."
  else
    echo "Failed to backup database $SITE_CODE."
  fi


   #############
   # 删除数据库 #
   ############
  mysql -u $RDS_ADMIN -p$RDS_PWD -e "DROP DATABASE $SITE_CODE;"

  # 检查 MySQL 命令是否成功执行
  if [ $? -eq 0 ]; then
    echo "Database $SITE_CODE has been deleted."
  else
    echo "Failed to delete database $SITE_CODE."
  fi

  # 删除nginx 配置文件 #
  sudo rm -f /usr/local/openresty/nginx/vhost/$SITE_CODE.conf

  # 删除nginx 站点日志文件 #
  sudo rm -f /usr/local/openresty/nginx/logs/$SITE_CODE.error.log
  sudo rm -f /usr/local/openresty/nginx/logs/$SITE_CODE.access.log

  echo "reload nginx config"
  /usr/local/openresty/nginx/sbin/nginx -s reload
  echo "reload nginx config done!"

else

  # 删除nginx 配置文件 #
  sudo rm -f /usr/local/openresty/nginx/vhost/$SITE_CODE.conf
  # 删除nginx 站点日志文件 #
  sudo rm -f /usr/local/openresty/nginx/logs/$SITE_CODE.error.log
  sudo rm -f /usr/local/openresty/nginx/logs/$SITE_CODE.access.log

  echo "remove nginx $SITE_CODE config and log file"

  # 目录不存在,输出指定内容
  echo "The specified directory does not exist."
fi