
文档教程知识库【免费下载链接】til:memo: Today I Learned项目地址https://gitcode.com/gh_mirrors/ti/til点击查看免费下载本指南讲解如何用 AWS CLI 的aws rds describe-db-snapshots命令从海量 RDS 快照中精准筛出由脚本创建、带有特定标识符前缀如dev-snapshot-的手动快照。读完本文你将掌握--snapshot-type与 JMESPath--query组合过滤的完整写法并能将其直接落地到手动打快照 → 恢复临时库 → 脱敏后导出的自动化脚本中。场景为什么需要按前缀筛选快照在维护数据库的日常工作中我们常常需要编写脚本来自动化备份—处理—恢复链路。一个典型流程是脚本手动创建一个 RDS 快照将该快照恢复为一个临时数据库在临时库中清洗、脱敏数据将处理后的数据 dump 出来最后删除临时资源。这类脚本创建的快照属于手动快照manual并且通常会按约定以固定前缀命名例如dev-snapshot-从而与业务环境区分开。与此同时RDS 会出于备份与恢复backup/recovery目的自动创建大量自动快照automated它们的数量往往远多于脚本手动创建的快照。在这种手动快照散落在大量自动快照之中的情况下直接列出全部快照会非常嘈杂。我们需要一个既能按快照类型过滤、又能按命名前缀过滤的方法只保留脚本创建的那几个快照。核心命令describe-db-snapshots 双重过滤AWS CLI 提供了describe-db-snapshots命令用于列出数据库快照。结合--snapshot-type参数和--query表达式可以一次调用完成类型过滤 前缀匹配 输出精炼$ aws rds describe-db-snapshots \ --snapshot-type manual \ --query DBSnapshots[?starts_with(DBSnapshotIdentifier, dev-snapshot-)].DBSnapshotIdentifier \ --no-cli-pager [ dev-snapshot-20250327-155355 ]这个命令由两个关键部分组成--snapshot-type manual在服务端就把快照列表限定为手动快照一次性排除掉所有 RDS 自动创建的自动化快照。--snapshot-type的取值包括automated、manual、shared、public等可按需组合例如--snapshot-type automated则只保留自动快照。--query DBSnapshots[?starts_with(DBSnapshotIdentifier, dev-snapshot-)].DBSnapshotIdentifier这是一个 JMESPath 查询表达式分两步生效过滤器[?starts_with(DBSnapshotIdentifier, dev-snapshot-)]遍历响应体中的DBSnapshots数组仅保留DBSnapshotIdentifier字段以dev-snapshot-开头starts_with是 JMESPath 内置函数的快照对象投影.DBSnapshotIdentifier把筛选后的每个对象压平为仅含标识符的字符串数组最终输出不再是整段 JSON 对象而是一个简洁的字符串列表。因此无论自动快照有多少、命名多混乱只要脚本始终坚持dev-snapshot-前缀约定上面一条命令就能稳定返回本次脚本创建了哪些快照非常适合在自动化流程中作为校验或后续恢复步骤的输入。让输出更适合脚本消费上面示例中还使用了两个辅助参数它们对脚本化使用至关重要--no-cli-pager默认情况下 AWS CLI 会把输出送入less之类的分页器这会污染脚本的 stdout 解析。对这类已知返回结果很小的命令加上--no-cli-pager让结果直接输出到标准输出便于管道与重定向。相关内容可参考仓库中的 Turn Off Output Pager For A Command也可以全局关闭分页器aws configure set cli_pager 。--output格式CLI 默认输出格式通常为json可用aws configure get output确认。脚本消费时保持 JSON 输出最稳妥而需要人工阅读时可用--output table同一份--query在不同输出格式下都能生效。三种输出格式的差异见 Output CLI Results In Different Formats。前缀约定的价值与灵活扩展手动快照命名时带上环境与用途前缀是一种低成本、高收益的约定可追溯从标识符一眼看出快照来自哪个脚本、哪个环境、何时创建如dev-snapshot-20250327-155355即 2025-03-27 15:53:55 创建。可筛选配合starts_with可以按任意前缀圈定快照集合前缀就是天然的标签。可自动化脚本可以先用describe-db-snapshots拿到符合前缀的标识符列表再遍历执行restore-db-instance-from-db-snapshot之类的后续动作无需人工干预。同样的思路也可以横向迁移如果不限定manual类型改用--snapshot-type automated再叠加前缀过滤就能从自动快照中圈出特定环境的备份如果不需要前缀仅凭--snapshot-type manual一条过滤即可列出全部手动快照。与其他 RDS 操作串成完整链路筛选快照只是手动快照 → 临时库链路的一环。将本技巧与仓库中的相关实践结合可以拼出一条完整可运行的工作流脚本调用create-db-snapshot创建带前缀dev-snapshot-的手动快照使用本文的describe-db-snapshots双重过滤确认快照已就绪并拿到标识符将快照恢复为临时数据库实例对临时库进行数据脱敏、清洗通过psql连接到临时 RDS PostgreSQL 实例注意先在 VPC 安全组中为你的 IP 开放 5432 端口的入站规则dump 处理后的数据参见 Connect To An RDS PostgreSQL Database任务结束后删除临时实例与快照避免资源残留。通过类型 前缀的组合过滤脚本可以在任何时刻精确回答这个环境的手动快照有哪些让自动化备份与数据处理流程既可控又可审计。赞分享文档教程知识库【免费下载链接】til:memo: Today I Learned项目地址https://gitcode.com/gh_mirrors/ti/til点击查看免费下载相关推荐猫抓 Cat-Catch网页视频下载与 M3U8 嗅探完整上手指南猫抓 Cat Catch网页视频下载与 M3U8 嗅探完整上手指南 猫抓Cat Catch在浏览器里列出页面加载过的媒体、帮你存到本地集资源嗅探列表、M音视频aws-cli 实战使用 codestar-connections list-connections 列出并筛选第三方代码仓库连接aws cli 实战使用 codestar connections list connections 列出并筛选第三方代码仓库连接 本文基于 aws cli开发工具云原生运维10分钟出第一个可用变声模型RVC变声器完整实操全流程10分钟出第一个可用变声模型RVC变声器完整实操全流程 换声痛点为什么自己训练一个音色模型 做短视频角色换声、想造一个 AI 歌手时常规路径只有自己人工智能AI 应用语音音频深度学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考