2016-07-28 141 views
1

我们在AWS S3中有一个存储桶,正在将生产备份复制到其中。AWS S3下载和复制

我的任务是将最新的备份文件从AWS S3复制到本地沙箱SQL Server,然后执行还原。

我已经在本地服务器上安装了所有适用于Windows的AWS工具。连接到AWS S3工作的凭证等 我的本地服务器可以列出AWS S3存储桶中的所有文件。如果我专门命名该文件,我可以成功下载单个文件。

这里是工作从7月25日拉出最新副本的一个例子,2016年

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

我的目标是有一个副本脚本,它只将最新的文件,我不会知道的名字。我想安排这个。

没有我谷歌或尝试让我正确的语法来做到这一点。

+0

他们是按创建日期保存这些备份文件? – error2007s

回答

1

来检索你的水桶最新的文件,你可以做以下

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

的第一个命令将列出以JSON你斗的对象,该JSON的要素,这些here 然后要从最后一次修改日期排序元素,取最后一个元素,并且您希望他们的Key(即文件名称在存储区中)。添加--raw-output标志键名条纹报价

您可以重复使用的脚本或管将其与S3 cp命令类似下面

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