阿里云CLI-云盘相关操作

通过磁盘快照创建云盘,并挂在到实例

aliyun ecs CreateDisk --RegionId $regionId --DiskCategory $diskCategory --SnapshotId $snapshotId --InstanceId $instanceId

执行成功后会返回磁盘ID(DiskID)

  • --RegionId 区域ID(必须)
  • --DiskCategory 磁盘规格
  • --SnapshotId 磁盘快照ID
  • --InstanceId 挂在服务器实例ID

修改云盘为按量付费

磁盘卸载前,必须要从包年包月修改为按量付费

aliyun ecs ModifyDiskChargeType --InstanceId $instanceId --DiskIds '["$diskid1","$diskid2"]' --RegionId $regionId --DiskChargeType PostPaid
  • --InstanceId 实例ID(必须)
  • --DiskIds 磁盘ID(必须),输入格式为json格式的列表
  • --RegionId 区域ID(必须)
  • --DiskChargeType
    • PrePaid(默认):按量付费数据盘转换为包年包月数据盘。
    • PostPaid:包年包月数据盘转换为按量付费数据盘。

卸载云盘

aliyun ecs DetachDisk --InstanceId $instanceId --DiskId $diskId
  • --InstanceId 实例ID(必须)
  • --DiskId 磁盘ID(必须)

查看云盘相关信息

根据状态筛选云盘,查看云盘信息

aliyun ecs DescribeDisks --RegionId $regionId --Status Available --PageSize 5 --PageNumber 1
  • --RegionId 区域ID(必须)
  • --Status 状态:Available
  • --PageSize 每页显示磁盘的数量
  • --PageNumber 第几页

通过磁盘快照批量创建云盘脚本

此脚本需要一个instance-list.txt文件。每行依此记录:源服务器、磁盘快照ID、目标服务器IP、目标服务器instanceID,使用英文逗号分隔。

脚本最后sleep 40,是因为使用aliyun cli调用接口创建磁盘,接口并发量太高会因前一个事件还没结束而失败。

为了避免不必要的失败,又要重新整理机器,不如多等会。

#!/bin/bash

for i in `cat /root/instance-list.txt`
do
    regionId=填写地区id
    diskCategory=填写磁盘规格
    sourceInstance=`echo $i | awk -F ',' '{print $1}'`
    snapshotId=`echo $i | awk -F ',' '{print $2}'`
    destinationInstanceIp=`echo $i | awk -F ',' '{print $3}'`
    instanceId=`echo $i | awk -F ',' '{print $4}'`

    #通过镜像创建Disk,获取Disk的ID
    diskId=`aliyun ecs CreateDisk --RegionId $regionId --DiskCategory $diskCategory --SnapshotId $snapshotId --InstanceId $instanceId | jq '.DiskId' | awk -F"\"" '{print $2}'`

    echo SourceInstance:$sourceInstance , DestinationInstance:$destinationInstanceIp , DiskId:$diskId
    sleep 40
done

卸载服务器上包年包月云盘脚本

  1. 云盘从包年包月转为按量付费
  2. 卸载按量付费云盘

此脚本需要一个detach-disks-list.txt文件。每行依此记录:服务器instanceID、云盘diskID,使用英文逗号分隔。

#!/bin/bash

for i in `cat /root/detach-disks-list.txt`
do
        instanceId=`echo $i | awk -F',' '{print$1}'`
        diskId=`echo $i | awk -F',' '{print$2}'`
        regionId=cn-shenzhen
        echo 1- ModifyDiskChargeType InstanceId: $instanceId ,DiskId: $diskId
        aliyun ecs ModifyDiskChargeType --InstanceId $instanceId --DiskIds '["'$diskId'"]' --RegionId $regionId --DiskChargeType PostPaid
        sleep 5
        echo 2- DetachDisk InstanceId: $instanceId ,DiskId: $diskId
        aliyun ecs DetachDisk --InstanceId $instanceId --DiskId $diskId
        sleep 5
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值