阿里云的ecs自动快照功能只支持最长一周的间隔,而有些生产环境不太需要如此频繁的备份。
因此写了一个每月备份一次的脚本来解决这个问题
一共分五个步骤,分别是创建执行快照的账号,分配账号权限,安装阿里云cli,创建脚本,编辑计划任务。
一.创建账号。
为降低安全风险,这里新创建一个账号用于执行生成快照的脚本。
在创造账号时,只勾选api访问。
记录下创建完成后的token信息。
二.分配账号权限。
创建一个自定义的访问权限策略。
{
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:*Snapshot*",
"Resource": "*"
}
],
"Version": "1"
}
然后将这个策略套给新创建的账号,同时赋予这个账号ecs的只读权限。
三.安装阿里云cli客户端,这里就不做赘述,直接看阿里云的文档就好。
https://help.aliyun.com/document_detail/139508.html?spm=a2c4g.139508.0.0.3c18337a5eCaya
四.创建脚本。
aliyun configure set \
--profile bkadminprofile \
--mode AK \
--region cn-shanghai \
--access-key-id ************************ \
--access-key-secret **********************
先获取ecs的实例id
aliyun ecs DescribeInstances --RegionId cn-shanghai --output cols=InstanceId,InstanceName rows=Instances.Instance[]
#获取ecs实例的磁盘id
aliyun ecs DescribeDisks --RegionId cn-shanghai --InstanceId i-**************** --output cols=DiskId rows=Disks.Disk[]
创建脚本nano ecsbakup.bash
aliyun configure set \
--profile bkadminprofile \
--mode AK \
--region cn-shanghai \
--access-key-id ************************ \
--access-key-secret **********************
#为这块磁盘创建快照 并保留65天
aliyun ecs CreateSnapshot --DiskId i-*************** --RetentionDays 65
赋予bash脚本执行权限
chmod +x ecsback.bash
五.编辑crontab 每月1日凌晨1点执行
crontab -e
0 1 1 * * ecsbackup.bash
评论
发表评论