2011-12-03 30 views
0

我寫了一個腳本這需要MySQL的轉儲,並上傳到S3和我已經加入了腳本到的cronjob和腳本在2點在午夜運行,並上傳了MySQL轉儲到S3。在上傳到S3之前,我使用日期和時間戳作爲文件名。管理每週的備份量

我的問題是我需要在S3上管理備份的7天,並自動從S3中刪除第8天的備份文件,因爲我使用日期和時間戳作爲文件名來使每個文件都是唯一的,所以我我無法弄清楚如何去做。

同時,我必須恢復最新的備份在另一個EC2實例。

回答

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> 

,並與上次更改時間節點的值,可以確定何時創建文件。
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)

0

您可以創建備份文件使用日期字符串作爲文件名,並使用日期-7 days來找出 文件需要刪除。