Я пытаюсь создать сценарий для резервного копирования тома автоматически.Как автоматически снижать объем экземпляра 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)
Мне очень жаль, что новичок, но я не понимаю, весь сценарий
EDIT:
Я получаю эту ошибку с этим новым кодом:
Создание моментального снимка для тома: ([ec2-describe-volume]) с описание: -03-13-2012 Информация о моментальном снимке ниже: Client.InvalidParame terValue: Значение (([ec2-describe-volume])) для параметр volumeId недействителен. Ожидается: «vol ...». Процесс закончился в 03-13-2012-08: 11: 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
ок много спасибо за объяснения, я искал весь день, и я спросил себя на вопросы о «глобальном» варах :-) Спасибо за маленькие improvments о id экземпляра и списке томов, список томов вызвал у меня некоторые проблемы. Я изменю описание, и я исправлю «Client.InvalidParameterValue: Value (([ec2-describe-volume])) для параметра volumeId недействителен. Ожидаемый:« vol -... ». ошибка, которая по-прежнему :-) – clement
Будьте осторожны с изменением описания. Убедитесь, что вы добавили кавычки вокруг него, чтобы быть осторожным. Если вы получаете сообщение об ошибке Client.InvalidParameterValue, то это потому, что либо идентификатор тома пуст, либо текст, используемый вами для описания есть пробелы и его часть чтения описания для идентификатора тома – bwight
У меня снова есть эта проблема. Это весь процесс, напечатанный на экране: Создание моментального снимка для тома: ([ec2-describe-volume]) с описание: -03-13-2012 Информация о моментальном снимке ниже: Client.InvalidParameterValue: Значение (([ec2-describe-volume])) для параметра volumeId недопустимо. Ожидаемое: 'vol -...'. Процесс закончился в 03-13-2012-08: 11: 35 – clement