我编写了一个脚本,它接受mysql转储并将其上传到s3,我已将脚本添加到cronjob,脚本在午夜2点运行,并将mysql转储上传到S3。我在将日期和时间戳上传到S3之前使用它作为文件名。
我的问题是我需要在S3上管理7天的备份并自动删除S3中的第8天备份文件,因为我使用日期和时间戳作为文件名来使每个文件都是唯一的,我是无法弄清楚如何做到这一点。
而且我还必须在另一个EC2实例中恢复最新的备份。
答案 0 :(得分:1)
您可以从S3存储分区主机获取XML响应,例如
http://YOUR_BUCKET.s3.amazonaws.com/
它应该返回一个XML,如: -
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>...</Name>
<Prefix/>
<Marker/>
<MaxKeys>1000</MaxKeys>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>xxxx.gz (if you gzip the dump)</Key>
<LastModified>2011-11-10T02:38:49.000Z</LastModified>
<ETag>"xxxxx"</ETag>
<Size>xxx</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
使用LastModified节点的值,您可以确定文件的创建时间
S3有SDK api可用的是不同的语言,
您可以下载副本,然后以编程方式执行清除
对于复制,使用SDK api,您可以从原始S3存储桶中获取内容,然后将其发布到另一个S3存储桶。
SDK Api: -
http://aws.amazon.com/sdkforphp/(PHP)
http://aws.amazon.com/sdkfornet/(。Net)
http://aws.amazon.com/sdkforjava/(Java)
答案 1 :(得分:0)
您可以创建备份文件使用日期字符串作为文件名,并使用日期-7 days
来确定
文件需要删除。