关于 backup-strategy
用于规划、创建、传输和验证备份的运维技能,面向需要明确恢复目标与授权边界的系统管理者。它提供默认预览的文件、MySQL 和 S3 辅助脚本,并强调实际恢复验证。
主要功能
- 01文件与 MySQL 备份脚本
- 02默认预览并显式确认执行
- 03校验和及压缩结果验证
- 04S3 上传后下载比对
- 05按规则清理本地备份
适用场景
- 01规划文件与数据库恢复方案
- 02将已验证归档传至 S3
- 03测试隔离环境中的恢复流程
- 04按保留策略清理旧归档
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mikr13/ secure-server-setup-skills --skill backup-strategy安装后在 Claude Code 中输入/backup-strategy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/backup-locations.mdscripts/backup-common.shbackup-full.shbackup-mysql.shbackup-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。定义告警、预期时长、排除策略、容量和所需的重启协调。
分别报告归档验证、远程字节验证和应用恢复结果。转储、加密、传输或恢复检查失败后,不要删除有用的历史版本。