买了腾讯无忧服务器以后,国内服务器也就基本使用腾讯云了。最近想着既然腾讯云有快照功能,那为什么不利用起来,当作给服务器进行数据备份。
但是每天手动操作又太麻烦,于是想利用腾讯云的 api 创建定时任务,每天自动创建快照。
使用方式如下:
- 获取腾讯云密钥
地址:https://console.cloud.tencent.com/cam/capi
- 获取实例id
地址:https://console.cloud.tencent.com/lighthouse
- 确定服务器地域
参考地址:https://www.tencentcloud.com/zh/document/product/215/31786
比如我的服务器是广州三区,那么地域就是 ap-guangzhou
。
- 创建容器
v1 版本,适合单个账户单个服务器,运行比较简单。(即使单个也建议使用其他版本,日志更全)
docker run -d --name snapshot \ |
-e INSTANCE_ID="lhins-xxx" \ |
-e REGION="ap-xxx" \ |
-e SECRET_ID="xxx" \ |
-e SECRET_KEY="xxx" \ |
-e CRON="30 3 * * *" \ |
hausen1012/tencent-snapshot:v1 |
2024年10月更新
v2 版本,适合有多台服务器需要定时快照的情况。
首先创建配置文件:
mkdir -p /home/docker/snapshot/config/ && |
cat > /home/docker/snapshot/config/config.yaml <<EOF |
wy1: |
TASK_NAME: wy1 |
INSTANCE_ID: lhins-xxx |
REGION: ap-xxx |
SECRET_ID: xxx |
SECRET_KEY: xxx |
CRON: "30 3 * * *" |
wy2: |
TASK_NAME: wy2 |
INSTANCE_ID: lhins-xxx |
REGION: ap-xxx |
SECRET_ID: xxx |
SECRET_KEY: xxx |
CRON: "30 3 * * *" |
EOF |
运行容器:
docker run -d --name snapshot \ |
-v /home/docker/snapshot/config/:/app/config \ |
hausen1012/tencent-snapshot:v2 |
2025年2月更新
v3 版本,为了不浪费免费快照数量,增加 RETAIN_DAYS
参数,保留最旧的一次快照日期。即删除快照时,判断最旧的快照距今是否超过 20 天,如果是则删除,否则只删除最近的快照。
mkdir -p /home/docker/snapshot/config/ && |
cat > /home/docker/snapshot/config/config.yaml <<EOF |
wy1: |
TASK_NAME: wy1 |
INSTANCE_ID: lhins-xxx |
REGION: ap-xxx |
SECRET_ID: xxx |
SECRET_KEY: xxx |
CRON: "30 3 * * *" |
RETAIN_DAYS: 20 |
wy2: |
TASK_NAME: wy2 |
INSTANCE_ID: lhins-xxx |
REGION: ap-xxx |
SECRET_ID: xxx |
SECRET_KEY: xxx |
CRON: "30 3 * * *" |
RETAIN_DAYS: 20 |
EOF |