加油
努力

如何在腾讯轻量应用服务器上开启自动快照功能?

在腾讯云轻量应用服务器(Lighthouse)中,目前(截至2024年)官方不支持原生的“自动快照”功能(即像CVM那样可配置定时自动创建系统盘/数据盘快照的策略)。这是轻量应用服务器与标准云服务器(CVM)的一个重要区别。

不过,你可以通过以下替代方案实现类似自动快照的效果


推荐方案:使用「自定义镜像 + 定时脚本 + 腾讯云CLI」组合实现自动化快照(备份)

⚠️ 注意:严格来说,轻量服务器不支持对运行中实例直接创建“快照”,但支持创建自定义镜像(Image)(本质是系统盘的完整备份),且可配合API/CLI实现自动化。


✅ 步骤详解(以 Linux 实例为例)

1️⃣ 前提条件

  • 已开通并登录 腾讯云控制台
  • 实例已绑定密钥对(SSH免密登录)
  • 已为轻量服务器分配公网IP,并确保安全组放行 SSH(22端口)
  • 已在本地或云服务器上安装并配置好 TencentCloud CLI(tccli)(推荐使用 v3.0+)

🔐 权限准备
在【访问管理 CAM】→【用户】→【API密钥】中创建子用户(或使用主账号密钥),授予以下最小权限策略:

{
  "version": "2.0",
  "statement": [
    {
      "effect": "allow",
      "action": [
        "lighthouse:CreateBlueprint",
        "lighthouse:DescribeBlueprints",
        "lighthouse:DeleteBlueprint"
      ],
      "resource": "*"
    }
  ]
}

💡 Blueprint 是轻量服务器中对“自定义镜像”的称呼(旧版称 Custom Image,新版统一为 Blueprint)

2️⃣ 创建自定义镜像(手动验证流程)

  • 登录 轻量应用服务器控制台
  • 进入「镜像」→「自定义镜像」→「创建自定义镜像」
  • 选择目标实例 → 输入名称(如 auto-backup-20240501)→ 确认创建
    ✅ 成功后可在「自定义镜像」列表中看到状态为「可用」

3️⃣ 使用 tccli 自动化创建镜像(关键步骤)

▶ 示例命令(创建镜像)
# 创建自定义镜像(Blueprint),需指定实例ID和名称
tccli lighthouse CreateBlueprint 
    --InstanceId lhins-xxxxxxxx 
    --BlueprintName "auto-backup-$(date +%Y%m%d_%H%M)" 
    --BlueprintDescription "Auto backup via cron"

📌 获取实例ID方法:

  • 控制台:实例详情页 → 「基本信息」→「实例 ID」(如 lhins-abc123def
  • 或用 CLI 查询:tccli lighthouse DescribeInstances --Filters '[{"Name":"instance-state","Values":["RUNNING"]}]'
▶ 清理旧镜像(可选,防配额超限)

轻量服务器默认最多保留 50 个自定义镜像,建议定期清理(如保留最近7天):

# 列出所有自定义镜像(按创建时间倒序)
tccli lighthouse DescribeBlueprints --Filters '[{"Name":"blueprint-state","Values":["NORMAL"]}]' 
  --OrderByKey "CreatedTime" --OrderByOrder "DESC" > blueprints.json

# 提取7天前的镜像ID(需配合 jq 解析,示例逻辑)
# (实际脚本中建议用 Python/Shell 解析 JSON 并判断 CreatedTime)

4️⃣ 设置定时任务(Linux 实例内或本地服务器执行)

推荐在一台稳定服务器(如另一台轻量/CVM)上部署定时任务:

# 编辑 crontab(每天凌晨2:00执行)
crontab -e

添加一行:

0 2 * * * /usr/bin/bash /root/scripts/lh-auto-backup.sh >> /var/log/lh-backup.log 2>&1

📌 /root/scripts/lh-auto-backup.sh 内容示例:

#!/bin/bash
export TENCENTCLOUD_SECRET_ID="YOUR_SECRET_ID"
export TENCENTCLOUD_SECRET_KEY="YOUR_SECRET_KEY"
export TENCENTCLOUD_REGION="ap-guangzhou"  # 替换为你实例所在地域

INSTANCE_ID="lhins-xxxxxxxx"

# 创建带时间戳的镜像名
NAME="auto-backup-$(date +%Y%m%d_%H%M)"

# 创建镜像
echo "[$(date)] Creating blueprint: $NAME"
tccli lighthouse CreateBlueprint 
    --InstanceId "$INSTANCE_ID" 
    --BlueprintName "$NAME" 
    --BlueprintDescription "Auto backup $(date)" 
    --Region "$TENCENTCLOUD_REGION"

# 可选:删除7天前的镜像(需额外编写清理逻辑,注意避免误删)
# ...

✅ 赋予执行权限:chmod +x /root/scripts/lh-auto-backup.sh


❌ 不可行方案说明(避坑)

方法 是否可行 原因
控制台开启“自动快照策略” 轻量服务器控制台无此入口,API 也不支持 CreateSnapshots 接口(该接口属于 CVM)
对数据盘单独快照 轻量服务器暂不支持挂载独立云硬盘(CBS),所有存储为系统盘一体化设计
使用 CVM 快照 API 操作轻量实例 资源类型不同(lighthouse vs cvm),API 不兼容

✅ 补充建议 & 最佳实践

  • 备份频率建议:生产环境建议每日1次;若数据变更频繁,可结合 rsync + 对象存储(COS)做增量备份。
  • 镜像导出(高级):可通过 镜像导出为 COS 对象 实现异地归档。
  • 恢复方式:通过「自定义镜像」重装实例即可快速回滚(⚠️ 会覆盖当前系统盘,务必提前备份重要数据)。
  • 监控告警:可用 tccli lighthouse DescribeBlueprints 检查镜像状态,失败时触发企业微信/邮件通知。

🔗 官方参考文档

  • 轻量镜像操作指南:https://cloud.tencent.com/document/product/1207/47532
  • tccli 安装与配置:https://cloud.tencent.com/document/product/1207/61981
  • CAM 权限策略:https://cloud.tencent.com/document/product/1207/47542

如需,我可为你提供:

  • ✅ 完整可运行的 Shell 脚本(含自动清理过期镜像)
  • ✅ Python 版自动化脚本(支持多实例、邮件通知、COS 归档)
  • ✅ Terraform 管理蓝图生命周期(适合 DevOps 场景)

欢迎告诉我你的具体需求(如是否需要多实例支持、是否已有 COS 存储桶等),我可以为你定制方案 👇

云服务器