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)

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
弹性计算 Linux Windows
跨账号和同账号的ECS云服务器之间迁移教程
跨账号和同账号的ECS云服务器之间迁移教程
|
4月前
|
Oracle 关系型数据库 数据挖掘
服务器数据恢复—服务器RAID5磁盘阵列数据恢复案例
服务器数据恢复环境: 一台服务器上有一组由5块硬盘(4块数据盘+1块热备盘)组建的raid5阵列。服务器安装Linux Redhat操作系统,运行一套基于oracle数据库的OA系统。 服务器故障: 这组raid5阵列中一块磁盘离线,但是热备盘并没有自动激活rebuild,当另外一块数据盘发生故障离线后,raid崩溃。 用户方要求恢复raid数据,同时要求还原操作系统。经过初步观察,raid中的这些硬盘没有表现出存在明显的物理故障的特征,也没有明显的同步表现,数据恢复的可能性很大。
|
1月前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
3月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
89 5
|
3月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
1298 2
|
4月前
|
域名解析 弹性计算 程序员
想要轻松地搭建一个即开即用的WordPress博客吗?借助宝塔面板镜像+阿里云ECS,迅速拥有自己的个人博客
拥有个人博客是每位程序员的梦想,但对服务器不熟悉的初学者而言,搭建博客颇具挑战。本文介绍利用阿里云市场的宝塔面板镜像与ECS云服务器,轻松搭建WordPress博客的方法,让您快速拥有专属博客空间。通过简单的操作步骤,即使是新手也能轻松上手,实现从零到有的博客搭建过程。
294 3
|
4月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
158 1
|
4月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
140 3
|
4月前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
4月前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度

热门文章

最新文章