腾讯云使用coscli工具传输数据

参考腾讯云官方文档:https://cloud.tencent.com/document/product/436/63144

第一步:下载coscli工具

Linux-386:wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux-386

Linux-amd64:wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux-amd64

Linux-arm:wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux-arm

Linux-arm64:wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux-arm64

第二步 安装工具

mv coscli-linux-amd64 coscli

chmod 755 coscli

查看版本

./coscli --version

第三步 ,配置

初次使用时,COSCLI 会自动调用 ./coscli config init 在 ~/.cos.yaml 位置生成配置文件,您可以在命令行交互式的完成配置。后续您也可以使用 ./coscli config init 命令在其他位置为 COSCLI 交互式地生成配置文件。您可以使用./coscli config show来查看配置文件的所在位置和配置参数信息。

迁移脚本,例如

bash 复制代码
cat cos_upload_test.sh


#!/bin/bash

# 获取当前日期
CURRENT_DATE=$(date +'%Y-%m-%d')

# 本地文件夹路径(根据日期动态生成)
LOCAL_DIR="/ddt/fs/recordings/$CURRENT_DATE"
echo "Local directory: $LOCAL_DIR"

# 腾讯云COS的目标路径(不包括Bucket名,因为coscli命令会指定Bucket)
COS_BUCKET="prod-13*****7290"
COS_TARGET_DIR="cos://${COS_BUCKET}/ddt/fs/recordings/$CURRENT_DATE/"

# coscli命令的路径(如果coscli在PATH中,则可以直接使用coscli)
COSCLI="/root/downloads/coscli/coscli"

# 设置并发上传的数量
JOBS=10

# 日志目录和文件路径(加上当天日期)
LOG_DIR="/var/log/coscli"
LOG_FILE="$LOG_DIR/$CURRENT_DATE.log"

# 确保日志目录存在
mkdir -p "$LOG_DIR"

# 查找的时间范围
MINUTES_AGO_1200=$(date -d '1200 minutes ago' +'%Y-%m-%d %H:%M:%S')
FIVE_MINUTES_AGO=$(date -d '5 minutes ago' +'%Y-%m-%d %H:%M:%S')

# 无限循环,保持后台运行
while true; do
    # 查找本地文件夹中在过去1200分钟内新增或修改的文件,并且修改时间是5分钟之前的文件
    FILES=$(find "$LOCAL_DIR" -type f -newermt "$MINUTES_AGO_1200" ! -newermt "$FIVE_MINUTES_AGO")

    if [ -z "$FILES" ]; then
        echo "$(date '+%Y-%m-%d %H:%M:%S') - No files found within the specified time range." >> $LOG_FILE
    else
        echo "$(date '+%Y-%m-%d %H:%M:%S') - Found files within the specified time range:" >> $LOG_FILE
        echo "$FILES" >> $LOG_FILE
    fi

    # 清理临时文件列表
    > /tmp/upload_list.txt

    # 遍历找到的文件
    for FILE in $FILES; do
        # 获取文件的相对路径(相对于LOCAL_DIR)
        RELATIVE_PATH="${FILE#$LOCAL_DIR/}"

        # 构造COS的目标路径
        COS_PATH="${COS_TARGET_DIR}${RELATIVE_PATH}"

        # 获取文件的最后修改时间
        MOD_TIME=$(stat -c %Y "$FILE")  # 获取最后修改时间(以秒为单位)
        MOD_TIME_HUMAN=$(date -d @$MOD_TIME +"%Y-%m-%d %H:%M:%S")  # 将时间转换为人类可读格式

        echo "$(date '+%Y-%m-%d %H:%M:%S') - Local file: $FILE" >> $LOG_FILE
        echo "$(date '+%Y-%m-%d %H:%M:%S') - Last modified time: $MOD_TIME_HUMAN" >> $LOG_FILE
        echo "$(date '+%Y-%m-%d %H:%M:%S') - COS path: $COS_PATH" >> $LOG_FILE

        # 检查文件内容是否不为空
        if [ -s "$FILE" ]; then
            # 将文件路径和目标路径写入临时文件
            echo "$FILE $COS_PATH" >> /tmp/upload_list.txt
        else
            echo "$(date '+%Y-%m-%d %H:%M:%S') - File $FILE is empty, skipping." >> $LOG_FILE
        fi
    done

    # 使用 xargs 并发上传文件
    if [ -f /tmp/upload_list.txt ]; then
        cat /tmp/upload_list.txt | xargs -P $JOBS -n 2 bash -c '
            FILE=$1
            COS_PATH=$2
            LOG_FILE=$3
            COSCLI=$4
            if "$COSCLI" cp "$FILE" "$COS_PATH" >> "$LOG_FILE" 2>&1; then
                echo "$(date +%Y-%m-%d\ %H:%M:%S) - Uploaded and deleted: $FILE" >> "$LOG_FILE"
                rm -f "$FILE"
            else
                echo "$(date +%Y-%m-%d\ %H:%M:%S) - Failed to upload: $FILE" >> "$LOG_FILE"
            fi
        ' _ "$COSCLI" "$LOG_FILE"
    fi

    # 清理临时文件
    rm -f /tmp/upload_list.txt

    # 休眠一段时间(例如60秒),避免频繁检查文件系统
    sleep 15
done

执行脚本./cos_upload_test.sh即可迁移

查看迁移日志,成功失败记录

相关推荐
2501_9304724416 小时前
05_数据库迁移腾讯云_DTS评估与预检回滚清单
数据库·云计算·腾讯云
liyuanchao_blog1 天前
OVN/OVS场景下虚拟机新网卡通过 DHCP 获取 IP 地址的完整过程
网络·网络协议·tcp/ip·云计算
行者-全栈开发1 天前
WorkBuddy 实战:一次 P0 故障复盘,3 小时压缩到 40 分钟
腾讯云·aiops·故障复盘·workbuddy·agent 办公·复盘报告·值班记录
论文复现现场1 天前
MiniMaxH3 生成视频速度慢、电脑带不动怎么办?用 RTX 5090 云端镜像快速运行
云计算·电脑·音视频·gpu算力
2501_930472442 天前
03_AWS迁移腾讯云_组件差异风险清单与工作量WBS
云计算·腾讯云·aws
sbjdhjd2 天前
PHP RCE 多层绕过实战:关键字过滤、空格替换与 php://filter 伪协议 | 02
网络·安全·web安全·网络安全·云计算·安全架构·rce
云贝贝贝2 天前
腾讯云 TDSQL(MySQL 版)运维高频 6 坑:代理路由、读写分离、分片键、监控、PITR
运维·mysql·腾讯云
DisonTangor2 天前
【腾讯混元雪耻归来】 Hy4 preview:770B 参数 MoE 旗舰模型,1M 上下文全面开源
人工智能·算法·开源·aigc·腾讯云·腾讯云ai代码助手
论文复现现场2 天前
RTX 4090 24GB 能跑 Qwen3.8-27B 吗?单卡显存计算与云端部署指南
人工智能·python·云计算·llama·gpu算力
聚搜云——JuSouClouD2 天前
杭州腾讯云代理商:腾讯云2核4G服务器够用吗?网站、API和开发测试怎么选
服务器·云计算·腾讯云