管理每周备份

时间:2011-12-03 10:26:05

标签: linux bash ubuntu mysqldump

我编写了一个脚本,它接受mysql转储并将其上传到s3,我已将脚本添加到cronjob,脚本在午夜2点运行,并将mysql转储上传到S3。我在将日期和时间戳上传到S3之前使用它作为文件名。

我的问题是我需要在S3上管理7天的备份并自动删除S3中的第8天备份文件,因为我使用日期和时间戳作为文件名来使每个文件都是唯一的,我是无法弄清楚如何做到这一点。

而且我还必须在另一个EC2实例中恢复最新的备份。

2 个答案:

答案 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来确定 文件需要删除。