Tôi đang thử một tập lệnh để tự động sao lưu âm lượng.Làm thế nào để tự động chụp nhanh một thể tích của một cá thể Amazon EC2?
Tôi làm theo EBS-Snapshot.sh
kịch bản này như tìm thấy trên 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
Tôi có hai tập tin để xác thực X509, instance ID nhưng tôi không hiểu kịch bản và làm thế nào để parameterise khối lượng mà tôi muốn để sao lưu.
Tôi không hiểu dòng đầu tiên (nguồn) và EC2_BIN. Với cấu hình đó, nó liệt kê tất cả các tập và tạo ảnh chụp nhanh của tất cả các ...
Để nhận xét về ảnh chụp nhanh, làm cách nào tôi có thể thay đổi dòng này để thêm văn bản?
DESC=$NAME-$(date +%m-%d-%Y)
Tôi xin lỗi là một người mới bắt đầu nhưng tôi không hiểu toàn bộ kịch bản
EDIT:
tôi nhận được lỗi này bằng mã mới này:
Tạo Ảnh chụp nhanh cho âm lượng: ([ec2-description-volume]) với mô tả: -03-13-2012 Thông tin chụp nhanh bên dưới: Client.InvalidParame terValue: Giá trị (([ec2-description-volumes])) cho tham số volumeId không hợp lệ. Dự kiến: 'vol -...'. Quá trình kết thúc vào lúc 03-13-2012-08: 11: 35 -
Và đây là đoạn code:
#!/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
ok hơn nhiều nhờ cho lời giải thích, tôi đã tìm kiếm tất cả các ngày và tôi yêu cầu bản thân mình cho các câu hỏi về "toàn cầu" vars :-) Cảm ơn improvments chút về id cá thể và danh sách khối lượng, danh sách khối lượng gây ra cho tôi một số rắc rối. Tôi sẽ sửa đổi mô tả và tôi sẽ sửa "Client.InvalidParameterValue: Value (([ec2-describe-volume])) cho tham số volumeId không hợp lệ. Dự kiến: 'vol -...'. ' lỗi đó vẫn còn :-) – clement
Hãy cẩn thận với việc thay đổi mô tả Hãy chắc chắn rằng bạn thêm dấu ngoặc kép xung quanh nó để cẩn thận.Nếu bạn đang nhận được một lỗi Client.InvalidParameterValue thì đó là vì một trong hai khối lượng-id là trống hoặc văn bản của bạn sử dụng cho mô tả có không gian và phần đọc của mô tả cho volume-id – bwight
Tôi lại gặp phải vấn đề đó. Đây là toàn bộ quá trình được in trên màn hình: Tạo Ảnh chụp nhanh cho ổ đĩa: ([ec2-describe-volumes]) với mô tả: -03-13-2012 Thông tin chụp nhanh bên dưới: Client.InvalidParameterValue: Giá trị (([ec2-description-volume])) cho tham số volumeId không hợp lệ. Dự kiến: 'vol -...'. Quá trình kết thúc tại 03-13-2012-08: 11: 35 – clement