shell脚本编程《linux下kvm虚拟机的创建、开启、显示、停止、重置》

Shell脚本编程——案例一

编程要求:

1.创建vm-ctl脚本,在/bin/下

2.实现功能:创建虚拟机、创建虚拟机快照、开启虚拟机、显示虚拟机、停止虚拟机、重置虚拟机。

脚本实现预期结果:

sh vm-ctl create|nodecreate|start|view|stop|reset vmname

实现脚本如下:

#!/bin/bash

case "$1" in

create)            ##创建虚拟机

echo create vm $2 ...

virt-install \

--name $2 \

--ram 1000 \

--file /var/lib/libvirt/images/$2.qcow2 \

--file-size 8 \

--cdrom /home/kiosk/Downloads/rhel-server-7.1-x86_64-dvd.iso &

echo Create vm $2 successful! Please create vmnode by nodecreate after this!!!    ##创建完虚拟机之后,请再创建虚拟机快照之后使用虚拟机快照来操作。

;;

nodecreate)                    ##创建虚拟机快照

virsh destroy $2

virsh undefine $2

qemu-img create -f qcow2 -b /var/lib/libvirt/images/$2.qcow2 /var/lib/libvirt/images/

$2node.qcow2 &>/dev/null

virt-install \

--name $2 \

--ram 1000 \

--disk /var/lib/libvirt/images/$2node.qcow2 \

--import &>/dev/null &

echo Create vm $2node successfull!!!

;;

start)            ##开启虚拟机

echo start vm $2 ...

virsh start $2 &>/dev/null

echo Start vm $2 successful!!!

;;

view)            ##显示虚拟机

echo view vm $2 ...

virt-viewer $2 &>/dev/null

echo View vm $2 successful!!!

;;

stop)            ##关闭/停止虚拟机

echo stop vm $2 ...

virsh destroy $2 &>/dev/null

echo vm $2 is stopped!!!

;;

reset)            ##重置虚拟机

echo reset vm $2 ...

virsh destroy $2 &>/dev/null

virsh undefine $2 &>/dev/null

rm -fr /var/lib/libvirt/images/$2node.qcow2        ##删除原磁盘快照文件

qemu-img create -f qcow2 -b /var/lib/libvirt/images/$2.qcow2 /var/lib/libvirt/images/

$2node.qcow2 &>/dev/null                           ##重新创建快照

virt-install \                                     ##使用这个新快照创建虚拟机

--name $2 \

--ram 1000 \

--disk /var/lib/libvirt/images/$2node.qcow2 \

--import &>/dev/null &

echo Reset vm $2 successfule!!!

;;

*)                ##其他,显示报错信息

echo"ERROR:please input create|nodecreate|start|view|stop|reset after vm-ctl"

esac

时间: 2024-10-10 17:14:02

shell脚本编程《linux下kvm虚拟机的创建、开启、显示、停止、重置》的相关文章

linux下kvm虚拟机的搭建

安装kvm虚拟机工具:yum -y install qemu-kvm #为kvm提供底层支持libvirt-client #virsh等软件libvirt-daemon #libvirtd服务守护进程libvirt-daemon-drive-qemu #virsh的qemu驱动virt-install #系统安装工具virt-manager #图形管理工具virt-v2v #虚拟机迁移工具virt-p2v #物理机迁移工具 在真机上添加一条路由转发,以方便后期的虚拟机访问外网vim /etc/s

shell脚本:不登陆KVM虚拟机,修改虚拟机网卡IP地址

# Author:丁丁历险(Jacob) # 该脚本使用 guestmount 工具,Centos7.2 中安装 libguestfs-tools-c 可以获得 guestmount 工具 # 脚本在不登陆虚拟机的情况下,修改虚拟机的 IP 地址信息 # 在某些环境下,虚拟机没有 IP 或 IP 地址与真实主机不在一个网段 # 真实主机在没有 virt-mange 图形的情况下,远程连接虚拟机很麻烦 # 该脚本可以解决类似的问题 #!/bin/bash #Author:丁丁历险(Jacob) #

《Linux命令行与shell脚本编程大全》第十七章 创建函数

可以将shell脚本代码放进函数中封装起来,这样就能在脚本中的任何地方多次使用它了. 17.1 基本的脚本函数 函数:是一个脚本代码块,可以为其命名并在代码中任何位置重用. 17.1.1 创建函数 有两种格式:name 是函数名 1) function name {          commands } 2)这种就比较接近c语言风格了 name() {          commands } 17.1.2 使用函数 跟其他shell命令一样,在行中指定函数名就好了. 在函数定义前使用函数,会收

windows下编写的Shell脚本在Linux下运行错误的解决方法

出现这种错误的原因:CR/LF问题,在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令. 两种解决方法: 1.将格式转换为UNIX,“编辑->格式转换(CR/LF)->UNIX”,这样Linux下就能按unix的格式保存文件 2.在vim中,输入:set ff=unix,然后:wq,同样也是转换成unix的格式 cat

CentOS 6.9下KVM虚拟机快照创建、删除、恢复(转)

使用文件快照的方式实现文件备份,但单说快照(snapshot)的话,他是某一时间点(版本)你能看到的该时间点备份文件状态的全貌,通过文件的快照(全貌)你能恢复到特定时间点(版本)的文件状态. 创建虚拟机centos6的快照 virsh snapshot-create centos6 查看格式 qemu-img info /data/kvm/centos6.img 编辑centos6虚拟机的配置 比如转换格式 virsh edit centos6 创建快照要先转换为qcow2 格式 qemu-im

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句

Linux下的shell脚本编程-变量-算术表达式-判断语句-if分支语句 一:实验环境 1):虚拟机 2):linux系统 二:实验目标 1): shell 基本语法 2):变量 3):表达式 4):判断语句 5): if表达式 三:实验脚本 第一块 一个简单的shell脚本程序 [[email protected] ~]# mkdir test [[email protected] test]# vim example1.sh #!/bin/bash #This is to show wha

Linux系统shell脚本编程——生产实战案例

Linux系统shell脚本编程--生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [[email protected] scripts]

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

Linux Shell脚本编程学习笔记和实战

http://www.1987.name/141.html shell基础 终端打印.算术运算.常用变量 Linux下搜索指定目录下特定字符串并高亮显示匹配关键词 从键盘或文件中获取标准输入 [read命令] 文件的描述符和重定向 数组.关联数组和别名使用 函数的定义.执行.传参和递归函数 条件测试操作与流程控制语句 获取时间日期格式和延时 [date.sleep命令] 内部字段分隔符IFS和脚本的调试DEBUG 显示.读取或拼接文件内容 [cat命令] 文件查找与打印文件列表 [find命令]