>운영 및 유지보수 >리눅스 운영 및 유지 관리 >API를 통해 예약된 커스텀 스냅샷을 구성하는 방법

API를 통해 예약된 커스텀 스냅샷을 구성하는 방법

坏嘻嘻
坏嘻嘻원래의
2018-09-29 16:00:122096검색

本篇文章给大家带来的内容是关于如何通过API配置定时自定义快照,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

如何通过API配置定时自定义快照

SSD云盘无法开启自动快照,那么就需要自己调用API来设定计划任务完成快照自动化

1、安装配置AliyunCli环境

参考官方文档:AliyunCli配置 

2、将如下内容保存为脚本/home/creare.sh

### 本脚本仅测试并执行于Linux下
#!/bin/bash
#source /etc/profile
#保留几份快照(无自定义快照情况下不能大于24)
num=3
num=$[$num - 1]
#检查AliyunCli执行路径
path=`which aliyuncli`
#检查AliyunCli和ECS SDK安装情况
check=`$path --help |wc -l`
check_sdk=`$path ecs |wc -l`
start_snapshot(){
for instance in `cat /home/instance.txt`;
do
disk=`$path ecs DescribeDisks --InstanceId $instance --output json --filter Disks.Disk[*].DiskId |awk -F "\"" '{print $2}'`
region=`$path ecs DescribeDisks --InstanceId $instance --output json --filter Disks.Disk[0].RegionId |awk -F "\"" '{print $2}'`
for disk in $disk
do
id=`$path ecs DescribeSnapshots --RegionId $region --DiskId $disk --Status accomplished --SnapshotName ScriptsCreate --output json --filter Snapshots.Snapshot[$num].SnapshotId |awk -F "\"" '{print $2}'`
if [[ "$id" != "" ]]; then
$path ecs DeleteSnapshot --SnapshotId $id
sleep 2
snapshot=ScriptsCreate
$path ecs CreateSnapshot --DiskId $disk --SnapshotName $snapshot
else
snapshot=ScriptsCreate
$path ecs CreateSnapshot --DiskId $disk --SnapshotName $snapshot
fi
sleep 1
done
sleep 1
done
}
if [[ "$check" -ge "38" ]];then
    if [[ "$check_sdk" -ge "56" ]]; then
    start_snapshot
    else
    echo "请先确保ECS SDK安装正确,再来执行该脚本!"
    fi
else
echo "请先确保AliyunCli安装正确,再来执行该脚本!"
fi

注意:上述脚本会自动删除备份个数以上的最早的脚本创建的快照

请确保脚本创建的快照额度够用,否则会导致脚本执行部分失败

例如:

设置NUM为3,有3个磁盘,那么快照剩余额度需要大于等于9个

3、将需要添加自动快照的ECS实例ID保存到/home/instance.txt文件中

4、添加crontab计划任务(每晚1点30分执行计划任务)

crontable -e插入如下内容:

30 1 * * * /bin/sh /home/create.sh

重启crond服务

service crond restart

5、快照执行完毕后我们会在控制台看到名称为ScriptsCreate的快照

API를 통해 예약된 커스텀 스냅샷을 구성하는 방법


위 내용은 API를 통해 예약된 커스텀 스냅샷을 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.