阿里云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/bashfor i in `cat /root/instance-list.txt`
doregionId=填写地区iddiskCategory=填写磁盘规格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的IDdiskId=`aliyun ecs CreateDisk --RegionId $regionId --DiskCategory $diskCategory --SnapshotId $snapshotId --InstanceId $instanceId | jq '.DiskId' | awk -F"\"" '{print $2}'`echo SourceInstance:$sourceInstance , DestinationInstance:$destinationInstanceIp , DiskId:$diskIdsleep 40
done

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

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

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

#!/bin/bashfor i in `cat /root/detach-disks-list.txt`
doinstanceId=`echo $i | awk -F',' '{print$1}'`diskId=`echo $i | awk -F',' '{print$2}'`regionId=cn-shenzhenecho 1- ModifyDiskChargeType InstanceId: $instanceId ,DiskId: $diskIdaliyun ecs ModifyDiskChargeType --InstanceId $instanceId --DiskIds '["'$diskId'"]' --RegionId $regionId --DiskChargeType PostPaidsleep 5echo 2- DetachDisk InstanceId: $instanceId ,DiskId: $diskIdaliyun ecs DetachDisk --InstanceId $instanceId --DiskId $diskIdsleep 5
done


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部