问题
I'd expect this to be fairly routine, but cannot find a simple approach for creating an managing EBS snapshots automatically.
Was hoping there'd be a shceduler in the AWS console.. alas not yet.
Would appreciate any suggestions as to how best to do this on from Ubuntu.
Thanks
回答1:
You can easily script something to do this for you.
- setup the EC2 commandline API tools
- set
EC2_CERT
andEC2_PRIVATE_KEY
in order to be able to use the API tools - parse the results of
ec2-describe-snapshots
- delete the appropriate snapshots
The results look something like:
SNAPSHOT snap-xxxxxxxx vol-xxxxxxxx completed 2009-08-26T07:39:33+0000 100%
You can then do some parsing of the dates and sorting and start removing the older snapshots.
NOTE: I don't know if we can trust the sort order but I've never seen it sort any other way than oldest to newest.
To delete a snapshot, use ec2-delete-snapshot snap-xxxxxxxx
.
The rest I leave to you as a simple Bash script that you can call daily or however often you need from cron.
回答2:
Take a look at AWS missing tools and especially to https://github.com/colinbjohnson/aws-missing-tools/tree/master/ec2-automate-backup This does what you need.
回答3:
Shameless plug, but - you can give Ebs2s3 a go: https://github.com/ajmfulcher/ebs2s3
Rails app to automate snapshot creation and prune old snapshots. Introduction and some screenshots here: http://ajmfulcher.blogspot.com/2011/04/ebs2s3-automated-backup-for-amazon-ebs.html
回答4:
I found this, hope it helps:
ec2-describe-snapshots | sort -r -k 5 | sed 1,6d | awk '{print "Deleting snapshot: " $2}'; system("ec2-delete-snapshot " $2)'
See: Bulk Delete EBS Snapshots From the Command Line (A Howto).
回答5:
A wonderful script to create an automatic snapshots.
https://github.com/rakesh-sankar/Tools/blob/master/AmazonAWS/EBS/EBS-Snapshot.sh
Just copy the code and create a file, then add a cronjob whenever you want it to run.
来源:https://stackoverflow.com/questions/1320994/automating-amazon-ebs-snapshots-anyone-have-a-good-script-or-solution-for-this-o