如何查找最新或最新的AWS RDS快照?

时间:2016-07-19 15:44:12

标签: amazon-web-services command-line-interface snapshot

我可以调用aws rds describe-db-snapshots --db-instance-identifier {my_db_instance}并对所有自动快照进行排序,以找到最近创建的快照,但我希望有人有更好的想法。

6 个答案:

答案 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标记仅列出自动备份。

http://docs.aws.amazon.com/AmazonRDS/latest/CommandLineReference/CLIReference-cmd-DescribeDBSnapshots.html

从那里,您应该能够解析输出以确定最新的快照。

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"