如何为腾讯云轻量服务器配置定时备份快照?

在腾讯云轻量应用服务器(Lighthouse)中,目前官方不支持直接通过控制台或 API 配置「自动定时快照」功能(该功能仅在标准 CVM 云服务器中提供,且需搭配云硬盘使用)。但轻量服务器的系统盘是基于镜像创建的只读快照型存储,其备份机制与 CVM 不同。

不过,你仍可通过以下 合规、可行、推荐的方式实现轻量服务器的定时备份目标


✅ 正确理解轻量服务器的备份能力

项目 说明
系统盘备份 轻量服务器的系统盘为“镜像+增量快照”架构,控制台中的「创建快照」仅针对当前运行状态手动保存一个快照(非自动),且最多保留 8 个快照(含系统默认快照)
数据盘支持 若你已挂载独立的云硬盘(CBS)作为数据盘,则该云硬盘支持开启自动快照策略(这才是真正的定时快照)✅
自动快照限制 ❌ 轻量服务器系统盘本身不支持自动快照策略;❌ 无法对整台轻量实例(含系统盘+数据盘)一键配置定时全盘快照

✅ 推荐方案:分场景实现「定时备份」

✅ 方案一:为挂载的云硬盘(CBS)配置自动快照(最实用)

✅ 适用场景:你已为轻量服务器挂载了独立云硬盘(如 /data),用于存放数据库、网站文件等重要数据。

操作步骤:

  1. 登录 腾讯云控制台
  2. 进入 轻量应用服务器 → 云硬盘 页面,确认已挂载云硬盘(状态为「已挂载」)
  3. 点击该云硬盘 ID → 进入「云硬盘详情页」→ 左侧选择 「自动快照策略」
  4. 点击 「绑定自动快照策略」 → 若无策略,先点击「新建策略」:
    • 策略名称:如 lighthouse-data-auto-snapshot
    • 执行时间:设置每天/每周的备份时间(UTC+8)
    • 保留个数:建议 7~30 个(按需)
    • 生效范围:选择该云硬盘(或批量选中)
  5. 保存并绑定 ✅
    → 后续该云硬盘将严格按策略定时创建快照,且可随时回滚。

🔍 提示:此快照仅备份云硬盘数据,不影响系统盘。需确保业务数据已迁移至该云硬盘(如 MySQL 数据目录、Nginx 网站根目录软链至此)。


✅ 方案二:通过 API + 云函数(SCF)或轻量服务器自身脚本实现「定时调用创建快照」

⚠️ 注意:轻量服务器API 创建快照是「手动快照」类型,不自动清理,需自行管理生命周期(否则达上限后无法新建)。

适用场景: 需要定期备份系统盘状态(如环境配置、小规模应用),且能接受手动清理快照。

实现方式(推荐使用云函数 SCF,免运维):

步骤 操作
① 准备权限 在 CAM 控制台为 SCF 创建角色,授予 lighthouse:CreateSnapshotlighthouse:DescribeSnapshots 权限
② 创建 SCF 函数(Python) python<br>import json<br>import os<br>from tencentcloud.common import credential<br>from tencentcloud.common.profile.client_profile import ClientProfile<br>from tencentcloud.common.profile.http_profile import HttpProfile<br>from tencentcloud.lighthouse.v20200324 import lighthouse_client, models<br><br>def lambda_handler(event, context):<br> # 从环境变量获取参数<br> region = os.environ.get("REGION", "ap-guangzhou")<br> instance_id = os.environ.get("INSTANCE_ID")<br> snapshot_name = f"auto-{context.timestamp[:10]}"<br><br> cred = credential.Credential(<br> os.environ["TENCENTCLOUD_SECRET_ID"],<br> os.environ["TENCENTCLOUD_SECRET_KEY"]<br> )<br> http_profile = HttpProfile()<br> http_profile.endpoint = f"lighthouse.{region}.tencentcloudapi.com"<br> client_profile = ClientProfile(http_profile=http_profile)<br> client = lighthouse_client.LighthouseClient(cred, region, client_profile)<br><br> req = models.CreateSnapshotRequest()<br> req.InstanceId = instance_id<br> req.SnapshotName = snapshot_name<br> resp = client.CreateSnapshot(req)<br> return {"snapshot_id": resp.SnapshotId, "name": snapshot_name}<br>
③ 配置触发器 添加「定时触发器(Timer)」,例如 0 2 * * *(每天凌晨2点执行)
④ 设置环境变量 INSTANCE_ID=lhins-xxx, REGION=ap-shanghai, 并配置 Secret ID/Key(建议使用密钥管理服务 CKMS 加密)
⑤ (可选)添加清理逻辑 在函数中调用 DescribeSnapshots + DeleteSnapshots 清理超过 N 天或超过 M 个的旧快照

✅ 优势:完全自动化、无需维护服务器;✅ 成本极低(SCF 免费额度充足)
⚠️ 注意:需妥善保管密钥(推荐用 CKMS)、避免快照堆积(务必加清理逻辑)


✅ 方案三:本地脚本 + crontab(适合技术自管用户)

在轻量服务器内部部署脚本(需安装腾讯云 CLI 或 SDK)

# 1. 安装 TCCLI(需提前配置密钥)
pip3 install tccli
tccli configure set --profile lighthouse 
    --secret-id "xxx" 
    --secret-key "xxx" 
    --region "ap-guangzhou"

# 2. 编写备份脚本 /root/auto-snapshot.sh
#!/bin/bash
INSTANCE_ID="lhins-xxxxxx"
DATE=$(date +%Y%m%d-%H%M)
NAME="auto-${DATE}"
tccli lighthouse CreateSnapshot 
    --InstanceId "$INSTANCE_ID" 
    --SnapshotName "$NAME" 
    --profile lighthouse

# 3. 设置定时任务(每天凌晨2:00)
echo "0 2 * * * /root/auto-snapshot.sh >> /var/log/snapshot.log 2>&1" | crontab -

⚠️ 风险提示:密钥明文存于服务器有安全风险;需自行处理快照数量限制(建议加 tccli lighthouse DescribeSnapshots + DeleteSnapshots 清理逻辑)


❌ 不推荐/不可行的做法

  • ✖ 尝试给轻量服务器系统盘直接绑定自动快照策略(控制台不显示该选项,API 会报错 UnsupportedOperation
  • ✖ 使用第三方工具(如 rsync + cron)仅同步文件,不是快照,无法恢复系统状态和崩溃一致性
  • ✖ 依赖轻量服务器「镜像导出」做备份(耗时长、费用高、非实时)

✅ 最佳实践建议(总结)

目标 推荐方案
保障数据盘安全(推荐!) ✅ 挂载云硬盘(CBS)→ 开启自动快照策略(控制台一键完成)
备份系统环境(如开发环境) ✅ 使用 SCF 定时调用 CreateSnapshot + 自动清理(安全、免运维)
简单临时备份 ✅ 控制台手动创建快照(适合上线前、重大变更后)
长期归档/跨地域容灾 ✅ 将重要快照复制为自定义镜像 → 再复制到其他地域(支持跨 Region)

🔗 官方参考链接

  • 轻量服务器快照文档:https://cloud.tencent.com/document/product/1207/47036
  • 云硬盘自动快照策略:https://cloud.tencent.com/document/product/364/55509
  • Lighthouse API 快照接口:https://cloud.tencent.com/document/api/1207/47552

如需,我可为你:

  • 生成完整的 SCF 函数 ZIP 包(含依赖和清理逻辑)
  • 提供带自动清理的 Bash 脚本(支持保留最近7个快照)
  • 指导如何将网站/数据库迁移到云硬盘并挂载

欢迎继续提问 👍

未经允许不得转载:ECLOUD博客 » 如何为腾讯云轻量服务器配置定时备份快照?