aws EC2二代镜像迁移阿里云ecs磁盘user_config.json生成脚本

简介: 由于迁移需要,此python脚本自动生成user_config.json包含aws二代镜像磁盘nvme的配置,以方便迁移,目前最多支持10块磁盘和每块磁盘最多10个分区,可以自己修改

脚本如下,请自行修改access_id和secret_key:

import os
import json



template_dict = {
    "access_id": "YOUR-ID",
    "secret_key": "YOUR-SECRET_KEY",
    "sts_token": "",
    "region_id": "",
    "image_name": "",
    "platform": "",
    "disks":[],
    "enable_disks" : True,
    "bandwidth_limit": 0
}
data_result = os.popen(' df -h | grep "/dev/nvme"').readlines()
#print(type(data_result))
#print(len(data_result))
disk_list = []
for line in data_result:
    line=str(line).split("\n")[0]
    line_list = line.split()
    disk_str=line_list[0]
    mount_str=line_list[5]
    disk_size_search = disk_str.split('p')[0]  ## use to search by fdisk -l for disk size
    #print(disk_size_search)
    searh_str = "fdisk -l | grep Disk | grep -v Disklabel | grep -v identifier | grep "+disk_size_search+ " | awk -F\":|,|G\" '{print $2}'"
    disk_size = int(float(os.popen(searh_str).readlines()[0].split("\n")[0].strip())+1)
    #disk_size = int(os.popen(searh_str).readlines())
    #print("disk size %s" % disk_size)
    #disk_size=int(line_list[1].split('G')[0])
    #print(disk_str,disk_size,mount_str)
    disk_list_item_dict = {}  ## use to save disk info items for disks list
    parts = []  ## use to save partion
    for i in range(1,10):
        disk_check_str='nvme'+str(i-1)
        if disk_check_str in disk_str:
            disk_list_item_dict['index']=i-1
            if disk_size < 20:
                disk_size = 20
            disk_list_item_dict["size"]=disk_size
            for j in range(1,10):
                part_check_str = disk_check_str +"n1p" +str(j)
                part_check_str_all_disk = disk_check_str +"n1"## all disk has only on partiton
                if disk_str.endswith(part_check_str_all_disk):
                    parts_item_dict = {}
                    parts_item_dict["part_index"] = 0
                    parts_item_dict["part_path"]=mount_str
                    if len(parts_item_dict) > 0:
                        parts.append(parts_item_dict)
                        break
                if part_check_str in disk_str:
                    parts_item_dict = {}
                    parts_item_dict["part_index"]=j-1
                    parts_item_dict["part_path"]=mount_str
                    if len(parts_item_dict) > 0:
                        parts.append(parts_item_dict)
        if len(parts) > 0:
            disk_list_item_dict["parts"] = parts
    if len(disk_list_item_dict) > 0:
        #print(disk_list_item_dict)
        disk_list.append(disk_list_item_dict)

if len(disk_list) > 0:
    template_dict["disks"] = disk_list

print(template_dict)
with open('/migrate_20200624/go2aliyun_client2.3.0b_linux_x86_64/user_config.json','w') as f:
    json.dump(template_dict,f)

请根据自己情况做适当修改和测试

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
652 10
|
7月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
7月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
758 8
|
7月前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。
|
7月前
|
弹性计算 运维 安全
区别及选择指南:阿里云轻量应用服务器与ECS云服务器有什么区别?
阿里云轻量应用服务器适合个人开发者、学生搭建博客、测试环境,易用且性价比高;ECS功能更强大,适合企业级应用如大数据、高流量网站。根据需求选择:轻量入门首选,ECS专业之选。
525 2
|
7月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
2823 1
|
7月前
|
存储 弹性计算 安全
阿里云渠道商:新手如何选择阿里云ECS实例?
阿里云ECS凭借弹性扩展、稳定可靠与安全防护,助力企业高效上云。本文系统解析实例规格选择关键因素:业务场景匹配、性能评估、成本优化、地域部署与扩展规划,结合计费模式与实际需求,提供科学选型建议,助您精准匹配资源,提升云上效能。(238字)
|
7月前
|
存储 弹性计算 安全
阿里云渠道商:新手怎么选阿里云ECS实例规格?
本文深入解析阿里云ECS的弹性、稳定与安全优势,详解实例规格选择的关键因素,涵盖应用场景、性能需求、成本预算、地理位置与扩展性,助力用户精准选型,优化业务部署与成本效益。