我可以调用aws rds describe-db-snapshots --db-instance-identifier {my_db_instance}
并对所有自动快照进行排序,以找到最近创建的快照,但我希望有人有更好的想法。
答案 0 :(得分:18)
对我来说,这个有效:
aws rds describe-db-snapshots \
--query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]"
查询参数自动对它们进行排序,并仅返回最新的。
如果只需要Arn,这个可能会有所帮助:
aws rds describe-db-snapshots \
--query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]|DBSnapshotArn" \
--output text
对于特定数据库实例的所有内容:
aws rds describe-db-snapshots \
--db-instance-identifier={instance identifier} \
--query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]|DBSnapshotArn" \
--output text
答案 1 :(得分:7)
我知道这是旧的,但我需要知道相同的信息,并能够构建以下内容,然后只给我快照名称。它并没有完全回答你关于强调查找最新快照的问题,但在这个例子中可能会给你更好的指导。
aws rds describe-db-snapshots --db-instance-identifier prd --snapshot-type automated --query "DBSnapshots[?SnapshotCreateTime>='2017-06-05'].DBSnapshotIdentifier"
使用选项
分解 --db-instance-identifier
(放入您正在寻找的实例名称)
--snapshot-type
(我自动进行了查找自动备份)
--query "DBSnapshots[?SnapshotCreateTime>='2017-06-05'].DBSnapshotIdentifier"
(这是我用来优化我的搜索,因为我们每天进行备份,我只是寻找快照创建时间比今天更大,并通过给.DBSnapshotIdentifier给我回到名称。
希望这会帮助其他人。
答案 2 :(得分:3)
我的方式:
> aws rds describe-db-snapshots --db-instance-identifier ${yourDbIdentifier} --query="reverse(sort_by(DBSnapshots, &SnapshotCreateTime))[0]|DBSnapshotIdentifier"
> "rds:dbName-2018-06-20-00-07"
答案 3 :(得分:1)
截至2014年10月31日,您似乎可以使用--t
标记仅列出自动备份。
从那里,您应该能够解析输出以确定最新的快照。
rds-describe-db-snapshots --t automated
DBSNAPSHOT rds:<NAME>-2016-08-09-17-12
没有任何其他更简单的方法。
答案 4 :(得分:0)
从快照中恢复数据库时出现此错误,该快照具有我从上述方法中通过命令获得的ID:
An error occurred (InvalidParameterValue) when calling the RestoreDBInstanceFromDBSnapshot operation: Invalid snapshot identifier: "rds:dev-mysql-rds1-2018-10-06-01-09"
因此,我修改了上面的查询以使其对我有用,这是一个对我有用的查询,用于获取与restore-db-instance-from-db-snapshot
一起使用的最新快照
aws rds describe-db-snapshots --query "DBSnapshots[?DBInstanceIdentifier=='MASTER_INSTANCE_IDENTIFIER']" | jq -r 'max_by(.SnapshotCreateTime).DBSnapshotIdentifier'
答案 5 :(得分:0)
如果有人正在寻找cluster
命令:
aws rds describe-db-cluster-snapshots --db-cluster-identifier prod --snapshot-type automated --query "DBClusterSnapshots[?SnapshotCreateTime>='2017-06-05'].DBClusterSnapshotIdentifier"