- 指定されたEBSボリュームのスナップショットを作成する。
- 指定があった場合は指定された世代数を残して過去のスナップショットを削除する
- 以下のようにしてスクリプトを取得する。もしくは、downloadして解凍。
$ git clone https://gist.github.com/4248981.git
$ ruby create_ebs_snapshot.rb --help
Usage: create_ebs_snapshot [options]
-a, --access-key-id
-s, --secret-access-key=VAL
-v, --volume-id=VAL
-e, --endpoint=VAL Default:ap-northeast-1
-d, --snapshot-description=VAL Default:2012/12/11 00:06:04 backuped by create_ebs_snapshot.rb
-n, --snapshot-name=VAL Default:[volume_id]-2012/12/11_00:06:04
-g=VAL Default:all snapshot is not removed
--snapshot-genaration-number
$ sudo yum update -y
$ sudo yum install rubygem-aws-sdk git -y
$ git clone git://gist.github.com/4248981.git
$ cd 4248981
$ ruby create_ebs_snapshot.rb -a [access-key-id] -s [secret-access-key] -v vol-123abc -g 5
-gオプションを使用する際、作成済みのスナップショットが指定する値よりも少ない場合にL43でエラーが発生します。
以下のような変更で回避できるのではないでしょうか
diff --git a/create_ebs_snapshot.rb b/create_ebs_snapshot.rb
index b1bbc84..db01cda 100644
--- a/create_ebs_snapshot.rb
+++ b/create_ebs_snapshot.rb
@@ -40,7 +40,6 @@ snapshot.add_tag('Name', :value => name)
if generation_number
snapshots = reg.snapshots.filter('volume-id', volume_id).sort_by { |x| x.start_time }.reverse
-end
\ No newline at end of file
+end