remove-and-bak-wpsite.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/bin/bash
  2. #### Remove WP Site
  3. #### v3 删除该临时站点资源并将其备份到指定目录,定期删除
  4. #### Author: chenpeiqing
  5. #### Date: 2024-12-05
  6. #### Usage: sh remove-and-bak-wpsite.sh [SITE_CODE]
  7. #### 示例: sh remove-and-bak-wpsite.sh 2408210vakv9
  8. SITE_CODE=$1
  9. # 定义要检查的目录路径
  10. FROM_DIR="/usr/local/wwwroot/"
  11. DIR_TO_CHECK=$FROM_DIR$SITE_CODE
  12. # 定义目标目录路径
  13. TARGET_DIR="/opt/adweb3/wp_bak/"
  14. # 定义数据库连接信息
  15. RDS_HOST='127.0.0.1'
  16. RDS_ADMIN='root'
  17. RDS_PWD='Initial0_123'
  18. # 检查目录是否存在
  19. if [ -d "$DIR_TO_CHECK" ]; then
  20. #############
  21. ## 备份代码 ##
  22. ############
  23. # 目录存在,执行移动操作
  24. cd $FROM_DIR
  25. echo "开始打包项目到$TARGET_DIR$SITE_CODE.tar.gz"
  26. sudo tar -czf $TARGET_DIR$SITE_CODE.tar.gz $SITE_CODE
  27. # 检查移动操作是否成功
  28. if [ $? -eq 0 ]; then
  29. echo "目标项目已经成功打包到$TARGET_DIR$SITE_CODE.tar.gz"
  30. sudo rm -rf $DIR_TO_CHECK
  31. if [ $? -eq 0 ]; then
  32. echo "打包后删除该项目目录$SITE_CODE"
  33. fi
  34. else
  35. echo "Failed to move the directory."
  36. fi
  37. #############
  38. # 备份数据库 #
  39. ############
  40. 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
  41. # 检查 MySQL 命令是否成功执行
  42. if [ $? -eq 0 ]; then
  43. echo "Database $SITE_CODE has been backup."
  44. else
  45. echo "Failed to backup database $SITE_CODE."
  46. fi
  47. #############
  48. # 删除数据库 #
  49. ############
  50. mysql -u $RDS_ADMIN -p$RDS_PWD -e "DROP DATABASE $SITE_CODE;"
  51. # 检查 MySQL 命令是否成功执行
  52. if [ $? -eq 0 ]; then
  53. echo "Database $SITE_CODE has been deleted."
  54. else
  55. echo "Failed to delete database $SITE_CODE."
  56. fi
  57. # 删除nginx 配置文件 #
  58. sudo rm -f /usr/local/openresty/nginx/vhost/$SITE_CODE.conf
  59. # 删除nginx 站点日志文件 #
  60. sudo rm -f /usr/local/openresty/nginx/logs/$SITE_CODE.error.log
  61. sudo rm -f /usr/local/openresty/nginx/logs/$SITE_CODE.access.log
  62. echo "reload nginx config"
  63. /usr/local/openresty/nginx/sbin/nginx -s reload
  64. echo "reload nginx config done!"
  65. else
  66. # 删除nginx 配置文件 #
  67. sudo rm -f /usr/local/openresty/nginx/vhost/$SITE_CODE.conf
  68. # 删除nginx 站点日志文件 #
  69. sudo rm -f /usr/local/openresty/nginx/logs/$SITE_CODE.error.log
  70. sudo rm -f /usr/local/openresty/nginx/logs/$SITE_CODE.access.log
  71. echo "remove nginx $SITE_CODE config and log file"
  72. # 目录不存在,输出指定内容
  73. echo "The specified directory does not exist."
  74. fi