我在尝试脚本来自动备份卷。如何自动快照Amazon EC2实例的卷?
我按照这个EBS-Snapshot.sh
脚本上github如发现:
#!/bin/bash
# export EC2_HOME='/etc/ec2' # Make sure you use the API tools, not the AMI tools
# export EC2_BIN=$EC2_HOME/bin
# export PATH=$PATH:$EC2_BIN
# I know all of the above is good to have solution, but not re-usable
# I have captured all of the above in a particular file and lemme execute it
source /etc/environment
PURGE_SNAPSHOT_IN_DAYS=10
EC2_BIN=$EC2_HOME/bin
# store the certificates and private key to your amazon account
MY_CERT='/path/to/certificate-file'
MY_KEY='/path/to/private-file'
# fetching the instance-id from the metadata repository
MY_INSTANCE_ID='your ec2-instance-id'
# temproary file
TMP_FILE='/tmp/rock-ebs-info.txt'
# get list of locally attached volumes via EC2 API:
$EC2_BIN/ec2-describe-volumes -C $MY_CERT -K $MY_KEY > $TMP_FILE
VOLUME_LIST=$(cat $TMP_FILE | grep ${MY_INSTANCE_ID} | awk '{ print $2 }')
sync
#create the snapshots
echo "Create EBS Volume Snapshot - Process started at $(date +%m-%d-%Y-%T)"
echo ""
echo $VOLUME_LIST
for volume in $(echo $VOLUME_LIST); do
NAME=$(cat $TMP_FILE | grep Name | grep $volume | awk '{ print $5 }')
DESC=$NAME-$(date +%m-%d-%Y)
echo "Creating Snapshot for the volume: $volume with description: $DESC"
echo "Snapshot info below:"
$EC2_BIN/ec2-create-snapshot -C $MY_CERT -K $MY_KEY -d $DESC $volume
echo ""
done
echo "Process ended at $(date +%m-%d-%Y-%T)"
echo ""
rm -f $TMP_FILE
#remove those snapshot which are $PURGE_SNAPSHOT_IN_DAYS old
我对X509的身份验证,实例ID这两个文件,但我不明白的脚本,以及如何进行参数我想要的音量备份。
我不明白第一行(源)和EC2_BIN。 使用该配置,它列出了所有卷,并对所有这些卷进行了快照...
对于快照的评论,如何更改此行以添加文本?
DESC=$NAME-$(date +%m-%d-%Y)
对不起,是一个初学者,但我不明白整个脚本
编辑:
我得到这个错误与这个新代码:
为卷创建快照:([ec2-describe-volumes])与 描述:-03-13-2012快照信息如下: Client.InvalidParame terValue:值(([ec2-describe-volumes])) 参数volumeId无效。预计:'vol -...'。 11:在过程 03-13-2012-08结束35 -
这是代码:
#!/bin/bash
#Java home for debian default install path:
export JAVA_HOME=/usr
#add ec2 tools to default path
#export PATH=~/.ec2/bin:$PATH
#export EC2_HOME='/etc/ec2' # Make sure you use the API tools, not the AMI tools
export EC2_BIN=/usr/bin/
#export PATH=$PATH:$EC2_BIN
# I know all of the above is good to have solution, but not re-usable
# I have captured all of the above in a particular file and lemme execute it
source /etc/environment
PURGE_SNAPSHOT_IN_DAYS=60
#EC2_BIN=$EC2_HOME/bin
# store the certificates and private key to your amazon account
MY_CERT='cert-xx.pem'
MY_KEY='pk-xx.pem'
# fetching the instance-id from the metadata repository
MY_INSTANCE_ID=`curl http://169.254.169.254/1.0/meta-data/instance-id`
# temproary file
TMP_FILE='/tmp/rock-ebs-info.txt'
# get list of locally attached volumes via EC2 API:
$EC2_BIN/ec2-describe-volumes -C $MY_CERT -K $MY_KEY > $TMP_FILE
#VOLUME_LIST=$(cat $TMP_FILE | grep ${MY_INSTANCE_ID} | awk '{ print $2 }')
VOLUME_LIST=(`ec2-describe-volumes --filter attachment.instance-id=$MY_INSTANCE_ID | awk '{ print $2 }'`)
sync
#create the snapshots
echo "Create EBS Volume Snapshot - Process started at $(date +%m-%d-%Y-%T)"
echo ""
echo $VOLUME_LIST
echo "-------------"
for volume in $(echo $VOLUME_LIST); do
NAME=$(cat $TMP_FILE | grep Name | grep $volume | awk '{ print $5 }')
DESC=$NAME-$(date +%m-%d-%Y)
echo "Creating Snapshot for the volume: $volume with description: $DESC"
echo "Snapshot info below:"
$EC2_BIN/ec2-create-snapshot -C $MY_CERT -K $MY_KEY -d $DESC $volume
echo ""
done
echo "Process ended at $(date +%m-%d-%Y-%T)"
echo ""
rm -f $TMP_FILE
#remove those snapshot which are $PURGE_SNAPSHOT_IN_DAYS old
确定多少感谢的解释,我找遍了所有的一天发现更多的细节,我问我自己,因为“整体”的问题瓦尔:-) 谢谢你的小改进措施关于实例ID和卷列表,卷列表给我带来了一些麻烦。我将修改描述,并且将修复参数volumeId的“Client.InvalidParameterValue:Value(([ec2-describe-volumes]))无效预期:'vol -...'。'错误,仍然:-) – clement 2012-03-12 16:38:04
小心改变描述。确保你加引号要小心。如果你得到一个错误Client.InvalidParameterValue那么这是因为无论是卷为空或你使用的文本因为描述中有空格,并且它的读取部分描述为volume-id – bwight 2012-03-12 17:53:37
我再次遇到这个问题,这是整个过程打印在屏幕上:为卷创建快照:([ec2-describe-volumes])与描述:-03-13-2012 以下快照信息: Client.InvalidParameterValue:参数volumeId的值(([ec2-describe-volumes]))无效预期:'vol -...' 过程结束在03-13-2012-08:11:35 – clement 2012-03-13 08:12:01