摘要:把整站(数据库导出 + 站点文件)同步到 S3 兼容对象存储当冷备份:rclone/官方 CLI 怎么选、排除项与大文件策略、生命周期降冷/过期、以及每月恢复演练清单。与云盘快照差异化;查询日期 2026-10-17;只放官网普通链接(affiliate_later)。

依据:rclone《rclone sync》《Amazon S3 / S3 兼容》;阿里云 OSS《生命周期概述》《基于最后一次修改时间的生命周期规则》;腾讯云 COS《生命周期概述》。查询日期:2026-10-17(北京时间)。本文只放官网普通链接(affiliate_later);不写具体单价;菜单名与默认值以控制台为准。

云盘快照与自定义镜像解决的是「整盘回到某一刻」;本站网站定期备份讲过数据库 + 文件怎么导出。本文补第三层:把备份包推到对象存储(阿里云 OSS / 腾讯云 COS / Cloudflare R2 等 S3 兼容桶)当异地冷备份——账号被盗、地域故障或误删服务器时,快照可能一起没了,对象存储另一账号/另一地域更抗单点。

一、对象存储备份 vs 云盘快照:别混用

云盘快照对象存储冷备份
备份对象整块云盘某一时刻你选中的文件/目录(库 dump、站点包、配置)
典型工具控制台自动/定期快照rclone、官方 CLI、备份插件推 S3
恢复形态滚盘 / 开新盘 / 自定义镜像开实例下载后解压还原到新机或测试机
异地可选跨地域复制(另计费)桶本身可放其他地域/其他云
常见坑随盘释放、额度满删旧私钥权限过大、生命周期误删、从未演练

图床场景见对象存储做图床;本文桶建议 私有读写,只给备份用的子账号最小权限,不要和公共读图床混在一个桶里。

二、选桶与权限(动手前)

  1. 地域:备份桶可与业务机同地域(内网/同城流量便宜),或刻意选另一地域做异地;不要默认「随便一个最近」。
  2. 权限:桶设为私有;用 RAM/CAM 子用户 + AccessKey,只授该桶的 List/Get/Put/Delete(按你策略收紧 Delete)。主账号密钥不要写进 crontab。
  3. 版本控制(强烈建议):开启后误覆盖/误删还有历史版本可捞;生命周期清理历史版本时务必单独配规则,见下文。
  4. 加密:默认服务端加密即可起步;合规要求高再开 KMS。
  5. 不要开公共读写:任何人可写会导致费用与数据被污染。

三、同步工具:rclone 与官方 CLI

1)rclone(跨云通用)

rclone 支持大量 S3 兼容后端(含阿里云 OSS、腾讯云 COS、Cloudflare R2 等,见 S3 文档)。核心命令:

  • rclone copy:只把源有、目标缺的补上,不删目标多余文件——适合「只往外堆备份」。
  • rclone sync:让目标与源一致,会删除目标上源没有的文件。官方文档加粗提醒:可能丢数据,先用 --dry-run 或 --interactive 试跑。
用对象存储做整站备份:同步工具、生命周期与恢复演练(2026)-有序
rclone 官方文档:rclone sync 会修改目标并可能删除;务必先 --dry-run / --interactive(2026-10-17 截图)

示例思路(路径与 remote 名自行替换;勿把密钥写进命令历史):

# 先 dry-run 看会传/会删什么
rclone sync --dry-run /backup/site/ ossbackup:my-bucket/site/$(date +%F)/

# 确认无误后再正式同步;大站可加 --progress --transfers=4
rclone sync /backup/site/ ossbackup:my-bucket/site/$(date +%F)/ \
  --exclude "cache/**" --exclude "**/node_modules/**" --exclude "*.tmp"

也可用 --backup-dir 把将被覆盖/删除的对象挪到同 remote 下另一前缀,便于保留「被替换前」的副本(需后端支持服务端 move/copy)。定时用系统 cron;日志写到文件并做失败告警。

2)官方 CLI / 控制台

  • 阿里云:ossutil 同步/拷贝;控制台「数据管理」也可配。
  • 腾讯云:coscli / SDK。
  • 仅一家云、且运维熟悉官方工具时,官方 CLI 与权限体系贴合更好;多云或本地+云混用时 rclone 更省事。

应用层仍建议先有 mysqldump(或等价)+ 站点目录打包,再推对象存储——只 sync 正在写的 wp-content 而不导库,恢复时会缺文章。流程骨架见网站定期备份。

四、同步排除项与大文件策略

路径/类型建议原因
缓存(WordPress cache、CDN 缓存目录)排除可重建,占带宽
node_modules、构建产物排除可用锁文件重装
uploads 超大媒体单独前缀、降低频率或增量全量日备很慢很贵
数据库 dump每天进备份前缀改动最频繁
主题/插件/配置每周全量或变更时体积相对小
会话/临时文件 *.tmp排除无恢复价值
备份目录自身勿递归进同一同步源避免套娃

uploads 特别大时:对象存储做「周全量 + 日库」;或插件/脚本只推变更。账单异常对照云账单突增排查。

五、生命周期:降冷与过期(省钱也防误删)

阿里云 OSS 生命周期规则创建后约 24 小时内加载;之后通常在次日 UTC 0 点(北京时间 8 点后)扫描执行。规则三要素:控制对象(前缀/标签/大小,不支持通配后缀/正则)、动作(转低频/归档/过期删除/清理未合并分片)、触发(最后修改时间或最后访问时间)。

用对象存储做整站备份:同步工具、生命周期与恢复演练(2026)-有序
阿里云 OSS:生命周期按前缀/标签筛选;可转低频归档、过期删除、清理分片(2026-10-17 截图)

基于最后修改时间的典型场景:客服录音等「60 天转低频 → 180 天转归档 → 730 天删除」式阶梯;备份前缀也可按「保留 N 天后删」或「转归档再删」设计。

用对象存储做整站备份:同步工具、生命周期与恢复演练(2026)-有序
阿里云:按最后修改时间转低频/归档或到期删除的场景说明(2026-10-17 截图)

腾讯云 COS 同样支持按最后修改/访问时间做沉降与过期删除,单桶规则数有上限(文档写最多约 1000 条,以当前页为准)。配置入口一般在存储桶「基础配置 → 生命周期」。

实操注意(两家口径高度相近):

  1. 删除优先于转换:多规则命中同一对象时,删除通常优先——删除天数务必长于转换天数。
  2. 最低存储时长:低频/归档有最短存放天数;未满就删或再转,可能产生不足时长补偿费。阶梯间隔要留足。
  3. 版本控制 + 历史版本规则:只删「当前版本」不够,历史版本与删除标记会继续占空间。
  4. API 覆盖风险:用 API/PutBucketLifecycle 时一次提交会覆盖整桶规则;控制台一般会合并。改前先导出当前规则。
  5. 先测后生产:在测试桶验证前缀是否过宽,再接到生产备份桶。

六、恢复演练 8 项清单(比「cron 绿了」更重要)

  1. □ 另开一台小规格测试机或本地目录,不要直接覆盖生产。
  2. □ 用只读密钥或临时凭证 rclone copy / 控制台下载某一日前缀的全量包。
  3. □ 校验压缩包完整性(gzip -t / tar -tzf / 校验和)。
  4. □ 还原数据库到测试库,抽查最近文章/订单条数。
  5. □ 还原文件后检查上传目录抽样图片、主题是否可加载。
  6. □ 若对象已进归档类:先按厂商文档 解冻/取回,再下载(取回有费用与等待)。
  7. □ 记录 RTO 粗估:从告警到测试站可打开要多久;缺哪一步写进 runbook。
  8. □ 演练频率:内容站建议至少每季度一次;大改版/换机前加做一次。

服务器侧还要配合安全基线、免费证书续期;搬家见WordPress 搬家。轻量机选型可参考腾讯云轻量入门核对。

七、相关阅读

八、风险提示

对象存储按量计费:存储、请求、外网流出、归档取回都可能产生费用。密钥泄露等于备份可被清空或产生巨额下行。生命周期误配可能导致备份被提前删除。本文不构成云厂商选型或运维外包建议;以各官网文档与你账号控制台最新文案为准。