Browse Source

资源删除备份脚本,自动化清除超时资源脚本

chenlei1231 3 months ago
parent
commit
ea885755a3
3 changed files with 52 additions and 3 deletions
  1. 12 0
      auto-wpsite
  2. 15 3
      remove-and-bak-wpsite.sh
  3. 25 0
      remove-backup.sh

+ 12 - 0
auto-wpsite

@@ -0,0 +1,12 @@
+#!/bin/bash
+FILE_NAME=$1
+TEMPLATE_SOURCE_ID=$2
+
+sudo -i << EOF
+echo "切换root用户成功"
+cd /opt/adweb3/shell
+sh create-wpsite.sh $FILE_NAME $TEMPLATE_SOURCE_ID
+# 在 root Shell 中执行需要 root 权限的命令
+EOF
+
+# 在回到普通用户身份后继续执行其他命令

+ 15 - 3
remove-and-bak-wpsite.sh

@@ -10,7 +10,10 @@
 SITE_CODE=$1
 
 # 定义要检查的目录路径
-DIR_TO_CHECK="/usr/local/wwwroot/$SITE_CODE"
+
+FROM_DIR="/usr/local/wwwroot/"
+
+DIR_TO_CHECK=$FROM_DIR$SITE_CODE
 
 # 定义目标目录路径
 TARGET_DIR="/opt/adweb3/wp_bak/"
@@ -27,11 +30,20 @@ if [ -d "$DIR_TO_CHECK" ]; then
   ## 备份代码 ##
   ############
   # 目录存在,执行移动操作
-  sudo mv "$DIR_TO_CHECK" "$TARGET_DIR"
+
+  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 "Directory has been moved to $TARGET_DIR."
+    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

+ 25 - 0
remove-backup.sh

@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# 设置要检查的目录路径
+TARGET_DIR="/opt/adweb3/wp_bak"
+
+# 设置文件或目录的存活天数
+DAYS_TO_KEEP=30
+
+# 获取当前日期的时间戳
+CURRENT_DATE=$(date +%s)
+
+# 遍历目标目录中的所有文件和目录
+for FILE_OR_DIR in "$TARGET_DIR"/*; do
+    # 获取文件或目录的最后修改时间的时间戳
+    LAST_MODIFIED_DATE=$(stat -c %Y "$FILE_OR_DIR")
+
+    # 计算文件或目录的存活天数
+    DAYS_OLD=$(( (CURRENT_DATE - LAST_MODIFIED_DATE) / 86400 ))
+
+    # 如果文件或目录的存活天数超过了设定的天数,则删除它
+    if [ "$DAYS_OLD" -gt "$DAYS_TO_KEEP" ]; then
+        rm -rf "$FILE_OR_DIR"
+        echo "Deleted: $FILE_OR_DIR (was $DAYS_OLD days old)"
+    fi
+done