2016-07-28 14 views
1

In AWS S3 gibt es einen Bucket, in den Sicherungen aus der Produktion kopiert werden.AWS S3 herunterladen und kopieren

Meine Aufgabe besteht darin, die letzte Sicherungsdatei von AWS S3 auf den lokalen Sandbox SQL Server zu kopieren und dann die Wiederherstellung durchzuführen.

Ich habe alle AWS-Tools für Windows auf dem lokalen Server installiert. Anmeldeinformationen für die Verbindung mit AWS S3 funktionieren usw. Mein lokaler Server kann alle Dateien im AWS S3-Bucket auflisten. Ich kann eine einzelne Datei erfolgreich herunterladen, wenn ich diese Datei ausdrücklich benenne.

Hier ein Beispiel für diese Arbeiten ist 25 die aktuellste Kopie von Juli ziehen 2016.

aws s3 cp s3://mybucket/databasefile_20160725.zip E:\DBA 

Mein Ziel ist es, eine Kopie Skript zu haben, der die letzte Datei zieht nur, das werde ich nicht kenne den Namen von. Ich möchte das einplanen.

Nichts google oder versuche ich bekomme die richtige Syntax, um dies zu tun.

+0

Sind diese wieder nach oben Dateien nach Datum gespeichert sie erstellt wurden? – error2007s

Antwort

1

die neueste Datei in Ihrem Eimer holen Sie das folgende

aws s3api list-objects --bucket "mybucket" |\ 
jq '.Contents | sort_by(.LastModified) | .[-1].Key' --raw-output 

Der erste Befehl die Elemente der JSon die Objekte Ihrer Eimer in Json tun können, werden Liste aufgeführt sind here Dann möchten Sie Sortiere das Element von seinem letzten Änderungsdatum, nimm das letzte Element, und du willst den Schlüssel (dh den Namen der Datei im Bucket). Das Hinzufügen der --raw-output Flagge Zitate aus dem Schlüsselnamen Striping

Sie können die Wiederverwendung in Skript oder ein Rohr mit dem s3 cp Befehl wie unten

aws s3api list-objects --bucket "mybucket" |\ 
jq '.Contents | sort_by(.LastModified) | .[-1].Key' --raw-output |\ 
xargs -I {} aws s3 cp s3://mybucket/{} E:\DBA