mcpField
B
backup-strategy

backup-strategy

github.com/mikr13云与 DevOps660 次安装2 周前更新
代码仓库

关于 backup-strategy

用于规划、创建、传输和验证备份的运维技能,面向需要明确恢复目标与授权边界的系统管理者。它提供默认预览的文件、MySQL 和 S3 辅助脚本,并强调实际恢复验证。

主要功能

  1. 01文件与 MySQL 备份脚本
  2. 02默认预览并显式确认执行
  3. 03校验和及压缩结果验证
  4. 04S3 上传后下载比对
  5. 05按规则清理本地备份

适用场景

  1. 01规划文件与数据库恢复方案
  2. 02将已验证归档传至 S3
  3. 03测试隔离环境中的恢复流程
  4. 04按保留策略清理旧归档

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mikr13/secure-server-setup-skills --skill backup-strategy

安装后在 Claude Code 中输入/backup-strategy确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
backup-locations.md
scripts/
backup-common.sh
backup-full.sh
backup-mysql.sh
backup-to-s3.sh

详细介绍

备份策略

在安排作业或删除备份代次之前,先定义可恢复的数据和恢复目标。仅归档所选目录并不等于完整的机器映像;上传成功或 gzip 检查通过也不等于应用恢复测试。

制定计划

  • 确定所需文件、应用数据库、密钥、所有权/ACL、恢复点目标和恢复时间目标、保留期限、加密密钥的保管方式,以及独立的存储目标。
  • 安排数据库一致性措施和架构稳定窗口。不要将正在使用的数据库数据文件复制到通用 tar 归档中,然后称其为一致的备份。
  • 明确文件和数据库制品如何传输到远程存储。使用权限范围受限的凭据,并根据事故模型设置适当的保留、版本控制或不可变性;遭到入侵的凭据仍可能导致远程存储中的数据被删除。
  • 将配置、调度、上传、远程策略变更和保留数据删除视为彼此独立的授权操作。对于适用的操作,应沿用已授予的授权;仅进行审计并不构成授权。

请阅读 references/backup-locations.md,了解存储决策、故障处理、计划安排和安全恢复。

创建文件和数据库制品

这些辅助脚本默认仅预览,要求显式提供输入,在受限权限下创建输出文件和校验和文件,在备份目录中串行执行作业,并且只发布经过验证的结果。可选的 GPG 加密使用已配置的公钥;加密失败时,会将已验证的压缩源文件作为受保护的待处理文件保留。

预览文件备份:

bash scripts/backup-full.sh --path /etc --path /var/www --backup-dir /backup/files --dry-run

在数据范围和存储目标获得授权后,使用 --apply。为所选加密密钥添加 --gpg-recipient。缺少或无效的输入会导致操作失败,而不会悄悄排除必需数据。GNU tar 会捕获所选目录的元数据;请在目标端检查恢复后的权限、ACL 和扩展属性。

预览 MySQL 备份:

bash scripts/backup-mysql.sh --defaults-file /secure/mysql-backup.cnf --database application --backup-dir /backup/mysql --dry-run

选项文件必须由执行用户拥有,且权限必须为私有。不会将密码传入 argv。为每个应用数据库重复指定 --database。辅助脚本会拒绝非 InnoDB 表;系统数据库和其他存储引擎需要单独审核快照/锁定流程。--apply --maintenance-confirmed 表示确认处于没有并发 DDL 操作的窗口内。请验证例程/事件权限,并确认在已安装的数据库版本上能够成功恢复。

传输和保留

S3 辅助脚本接收显式指定的制品路径,验证相邻的校验和文件,将制品上传到获批的前缀,再下载回来比对字节,随后上传校验和文件。该脚本会保留本地副本,不会更改存储桶生命周期或凭据。

bash scripts/backup-to-s3.sh --s3-uri s3://approved-backups/server-a --file /backup/files/FILE_ARCHIVE --file /backup/mysql/DATABASE_ARCHIVE --dry-run

使用前,请将实际生成的制品路径代入。--apply 会执行上传和回读,并产生传输/存储费用。只有在获批且可访问的密钥可用时,才指定 --kms-key-id;默认上传使用 S3 AES256 加密。已上传的密文仍需通过独立的私钥恢复测试。

除非显式指定 --prune,否则不会启用本地保留清理。使用 --dry-run --prune --retention-days 30 预览清理;使用 --apply --prune 时,只有在成功发布新的归档后才会清理。只有直接位于专用备份目录中、符合匹配条件、超过所选期限且校验和有效的常规文件才符合清理条件。旧版或未经验证的归档会予以保留,供人工审核。请确保计划清理操作的范围符合已获批的保留策略,并保留足够数量、经过独立验证的备份代次,以满足恢复需求。

这些辅助脚本共用 scripts/backup-common.sh;复制或安装脚本时,请将该文件与它们放在一起。

验证恢复

  • 检查归档内容和校验和、输出权限、作业退出状态、归档时长及远程副本。明确监控失败以及缺失或过期的制品。
  • 先恢复到隔离目录或数据库。比较必需文件、元数据和有代表性的应用查询;使用独立存储的密钥测试加密恢复。
  • 在经过审核的恢复操作中有选择地恢复应用数据。不要将 /etc、/root、用户或旧凭据直接解压到正在运行的系统中作为常规测试。
  • 仅在端到端运行和恢复成功后配置 cron/systemd。定义告警、预期时长、排除策略、容量和所需的重启协调。

分别报告归档验证、远程字节验证和应用恢复结果。转储、加密、传输或恢复检查失败后,不要删除有用的历史版本。

评论

支持 Markdown