说明:此脚本是通过快照技术快速的一键克隆虚拟机,脚本只限于CentOS和Redhat。

输入数字后会创建一个以标号标识的虚拟机。

代码如下:

#!/bin/bash

# exit code:

# 65 -> user input nothing

# 66 -> user input is not a number

# 67 -> user input out of range

# 68 -> vm disk image exists

IMG_DIR=/var/lib/libvirt/images

BASEVM=rh7_template

###BASEVM为后端的img文件名,此文件名根据自己需求更改!!!

ROOM=sed -n "1p" /etc/hostname | sed -r 's/(room)([0-9]{1,})(.*)/\2/'

if [ $ROOM -le 9 ];then

ROOM=0$ROOM

fi

IP=sed -n "1p" /etc/hostname | sed -r 's/(.*)([0-9]+)(.*)/\2/'

read -p "Enter VM number: " VMNUM

if [ $VMNUM -le 9 ];then

VMNUM=0$VMNUM

fi

if [ -z "${VMNUM}" ]; then

echo "You must input a number."

exit 65

elif [ $(echo ${VMNUM}*1 | bc) = 0 ]; then

echo "You must input a number."

exit 66

elif [ ${VMNUM} -lt 1 -o ${VMNUM} -gt 99 ]; then

echo "Input out of range"

exit 67

fi

NEWVM=rh7_node${VMNUM}

if [ -e $IMG_DIR/${NEWVM}.img ]; then

echo "File exists."

exit 68

fi

echo -en "Creating Virtual Machine disk image......\t"

qemu-img create -f qcow2 -b $IMG_DIR/.${BASEVM}.img $IMG_DIR/${NEWVM}.img &> /dev/null

echo -e "\e[32;1m[OK]\e[0m"

#virsh dumpxml ${BASEVM} > /tmp/myvm.xml

cat /var/lib/libvirt/images/.rhel7.xml > /tmp/myvm.xml

###rhel7.xml此文件需要存在!!!

sed -i "/${BASEVM}/s/${BASEVM}/${NEWVM}/" /tmp/myvm.xml

sed -i "/uuid/s/.*/$(uuidgen)/" /tmp/myvm.xml

sed -i "/${BASEVM}.img/s/${BASEVM}/${NEWVM}/" /tmp/myvm.xml

sed -i "/mac /s/a1/${ROOM}/" /tmp/myvm.xml

sed -i "/mac /s/a2/${IP}/" /tmp/myvm.xml

sed -i "/mac /s/a3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/b1/${ROOM}/" /tmp/myvm.xml

sed -i "/mac /s/b2/${IP}/" /tmp/myvm.xml

sed -i "/mac /s/b3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/c1/${ROOM}/" /tmp/myvm.xml

sed -i "/mac /s/c2/${IP}/" /tmp/myvm.xml

sed -i "/mac /s/c3/${VMNUM}/" /tmp/myvm.xml

sed -i "/mac /s/d1/${ROOM}/" /tmp/myvm.xml

sed -i "/mac /s/d2/${IP}/" /tmp/myvm.xml

sed -i "/mac /s/d3/${VMNUM}/" /tmp/myvm.xml

echo -en "Defining new virtual machine......\t\t"

virsh define /tmp/myvm.xml &> /dev/null

echo -e "\e[23;1m[OK]\e[0m"

linux一键克隆,使用shell一键克隆虚拟机相关推荐

  1. linux安装mysql(shell一键安装)

    1. 相关文件(install_mysql.sh.my.cnf.mysqld相关内容在文中最后面) 2. 将上面的文件上传到linux服务器某一目录下 3.给install_mysql.sh赋执行权限 ...

  2. Linux安装Flash脚本,Linux(CentOS)下的Shockwave Flash shell一键更新脚本

    原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2318.html https://www.myzhenai.com/thread-17933-1-1.h ...

  3. Linux系统一键安全加固shell脚本编写思路

    本次分享一下个人在对Linux系统一键安全加固shell脚本编写时的一些思路: Linux系统一键安全加固shell脚本编写思路 1.编写须知 1.1 脚本使用说明 1.2 主要功能说明: 1.3隐藏 ...

  4. Linux第一章:2.如何克隆虚拟机、如何创建虚拟机快照、如何迁移虚拟机、如何删除虚拟机

    一.虚拟机克隆 1.克隆的方式: 1.1 创建链接克隆:创建虚拟机的引用,使用的还是原本的系统 1.2 创建完整克隆:需要的空间较大,就是一个完整的拷贝 2.操作: 2.1 克隆操作需要关闭虚拟机系统 ...

  5. 虚拟服务器的克隆,怎么克隆远程服务器上的虚拟机

    怎么克隆远程服务器上的虚拟机 内容精选 换一换 云堡垒机与RADIUS服务器对接,认证登录系统的用户身份.本小节主要介绍如何配置RADIUS域认证模式,并可对配置的RADIUS认证进行用户有效性测试. ...

  6. Linux中RPM、YUN和克隆

    Linux中RPM.YUN和克隆 1.RPM查询命令 查询所有安装的软件包 rpm -qa 查看单一安装 rpm -qa |grep firefox 卸载安装包 rpm -e firefox 安装安装 ...

  7. linux一键电影网站脚本,Linux下HTML5播放器一键生成脚本

    原创内容,转载请注明出处: https://www.myzhenai.com.cn/post/2394.html https://www.myzhenai.com/thread-17969-1-1.h ...

  8. Linux下使用gnome-terminal命令一键开启工作环境

    Linux下使用gnome-terminal命令一键开启工作环境 文章目录 Linux下使用gnome-terminal命令一键开启工作环境 前言 gnome-terminal使用指南 gnome-t ...

  9. 虚拟机克隆以后出现“需要整合虚拟机磁盘”的解决方法

    问题描述 在虚拟机克隆完毕以后,原始虚拟机提示"需要整合虚拟机磁盘" 在"任务与事件"栏中看到以下信息 解决方法 从上面可以看到是因为整合失败导致的,那么我们只 ...

最新文章

  1. 杭电2028--Lowest Common Multiple Plus
  2. 自动化测试之键盘操作和select操作
  3. castle activerecord mysql_Castle ActiveRecord配置中需要注意的地方
  4. iOS 10 消息推送(UserNotifications)秘籍总结(二)
  5. [深度学习]CNN--卷积神经网络中用1*1 卷积有什么作用
  6. Springboot默认加载application.yml原理
  7. 磁盘与目录的容量(转)
  8. 肺功能曲线图怎么看_【家装干货】有人说是鸡肋,有人说是功能升级,卫生间装双人洗漱台,你怎么看?...
  9. c 解析java byte,深入解析Java编程中面向字节流的一些应用
  10. windows下启动activemq闪退
  11. 来自读者的面试题:谈谈Spring用到了哪些设计模式?
  12. 安装运行 rovio odometry
  13. unity去掉物体的阴影
  14. 在VS2017(VC15)上配置opencv4.0.1环境
  15. sklearn学习笔记(3)svm多分类
  16. java web 播放flv,实现网页中播放FLV文件的源代码
  17. lombok导入报错,版本1.18.12已在maven本地仓库中
  18. pwm调速流程图小车_循迹+pwm调速的小车源程序
  19. 例子4.11 从键盘输入一个大写字母,要求改用小写字母输出
  20. 地球系统模式(CESM)

热门文章

  1. Android5.1自定义闹钟铃声,vivo手机怎么添加自定义闹钟铃声
  2. 电子制作——锂电池大功率充电器
  3. picoCTF,Reverse Engineering,逆向类,42/55
  4. 用 RPM 打包软件,第 2 部分
  5. 实战整理-阿里天池淘宝用户购物行为数据集实战(MySQL数据分析+Navicat)
  6. Java项目:基于ssm汽车配件管理系统(计算机毕业设计)
  7. python的基础使用之字典(涅槃之路8)
  8. maven打包报错scalac error: xxxx\target\classes does not exist or is not a director
  9. java里用idea是什么意思_idea什么意思?啥意思?idea简介
  10. 大V科技谈 | VMware利用先进的自动化技术,简化混合办公模式