首先安装COSCMD

sudo yum install python3-pip

然后配置 coscmd

coscmd config -a YourActualSecretId -s YourActualSecretKey -r YourActualRegion -b YourActualBucket

检查 coscmd 是否在 PATH

which coscmd

添加到PATH

export PATH=$PATH:/usr/local/bin   # 添加 /usr/local/bin 到 PATH

重新加载配置文件或重新启动终端

source  /root/.bashrc

最后执行SH脚本

#!/bin/bash

# 替换为你的腾讯云 COS 相关信息
SECRET_ID=""
SECRET_KEY=""
REGION=""
BUCKET=""

# 要删除的文件夹路径(注意不要以斜杠结尾)
COS_PATH=""

# 获取当前时间戳
CURRENT_TIMESTAMP=$(date +%s)

# 打印 COS_PATH 以进行调试
echo "COS_PATH: $COS_PATH"

# 配置 coscmd
coscmd config -a $SECRET_ID -s $SECRET_KEY -r $REGION -b $BUCKET

# 列出文件夹下的所有文件
FILES=$(coscmd list -a -r $COS_PATH | awk '{print $1}')

# 获取文件数量
FILE_COUNT=$(echo "$FILES" | wc -l)

# 计算要删除的文件数量 这里填删除数量+1(我是5个 5+1=6)
FILES_TO_DELETE=$((FILE_COUNT - 6))

# 遍历文件,输出文件信息,并删除多余的文件
for FILE in $FILES; do
    # 使用 coscmd info 获取文件信息,提取最后修改时间
    FILE_INFO=$(coscmd info $FILE)
  
    # 判断是否为目录,如果是则跳过删除
    if [[ "$FILE_INFO" == *Content-Type*application/x-directory* ]]; then
        echo "Skipping deletion for directory: $FILE"
        continue
    fi

    # 提取文件最后修改时间
    LAST_MODIFIED=$(echo "$FILE_INFO" | grep "Last-Modified" | awk '{print $2, $3, $4}')

    # 将最后修改时间转换为时间戳
    FILE_TIMESTAMP=$(date -d "$LAST_MODIFIED" +%s)

    # 计算文件上传时间与当前时间的差值
    TIME_DIFF=$((CURRENT_TIMESTAMP - FILE_TIMESTAMP))

    # 判断文件是否为多余的文件(超过最近5个文件)
    if [ $FILES_TO_DELETE -gt 0 ]; then
        echo "File info for $FILE:"
        echo "$FILE_INFO"
  
        # 删除文件
        echo "Deleting file: $FILE"
        yes | coscmd delete $FILE

        # 更新要删除的文件数量
        FILES_TO_DELETE=$((FILES_TO_DELETE - 1))
    else
        echo "Skipping deletion for file within the last five files: $FILE"
    fi
done

echo "Cleanup completed."
最后修改:2023 年 11 月 18 日
如果觉得我的文章对你有用,请随意赞赏