web-dev-qa-db-ja.com

最新または最新のAWSRDSスナップショットを見つける方法は?

aws rds describe-db-snapshots --db-instance-identifier {my_db_instance}を呼び出して、すべての自動スナップショットを並べ替えて、最近作成されたスナップショットを見つけることができますが、誰かがもっと良いアイデアを持っていることを望んでいました。

15
itchy23

私にとって、これは機能します:

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
19
where

私はこれが古いことを知っていますが、私は同じ情報を知る必要があり、スナップショット名を与えるだけの次のものを構築することができました。最新のスナップショットを強調して見つけることについての質問に完全に答えるわけではありませんが、この例では、より良い方向性が得られる可能性があります。

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を指定することで名前だけが返されます。

うまくいけば、これは他の誰かを助けるでしょう。

7
Nick E

私のやり方:

> 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
user1767316

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  

これを回避する他の簡単な方法はありません。

1
error2007s

上記のメソッドからのコマンドで取得した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'
0
Arbab Nazar

誰かがclusterコマンドを探している場合:

aws rds describe-db-cluster-snapshots --db-cluster-identifier prod --snapshot-type automated --query "DBClusterSnapshots[?SnapshotCreateTime>='2017-06-05'].DBClusterSnapshotIdentifier"
0
FacePalm