一、编辑脚本
vim virtinstall.sh
#!/bin/bash ##指明翻译脚本的shell
virt-install \
--cdrom /var/ftp/pub/ios/rhel-server-7.3-x86_64-dvd.ios \ ##指明虚拟机镜像位置的位置
--ram 1024 \ ##指定虚拟机的内存
--cpus 1 \ ##指定虚拟机的cp数u
--disk /var/lib/libvirt/images/test.qcow2,bus=virtio,size=9 \ ##指明虚拟机硬盘位置并规定硬盘名字,虚拟机的网卡,虚拟机大小 (test为自己规定的硬盘名字.qcow2可有可无)
--name test \ ##指定虚拟机的名称
--network bridge=br0,model=virtio & \
sh virtinstall.sh :运行脚本
chmod +x virtinstall.sh
./virtinstall.sh :表示运行文件
虚拟机的硬盘:/var/lib/libvirt/images/vm-rsy.qcow2
硬件信息:/etc/libvirt/qemu/vm-rsy.xml
二、模拟恢复虚拟机
将虚拟机的相关文件移除,表示删除虚拟机
cd /var/lib/libvirt/images/
mv vm-rsy.qcow2 /mnt/#硬盘
mv /etc/libvirt/qemu/vm-rsy.xml /mnt#硬件信息
模拟恢复过程
cd /mnt
virsh create vm- rsy.xmL#用硬件信息文件启动虚拟机(一次性的)
在操作过程中会报错
virsh create vm- rsy. xml
error: Failed to create domain from vm- rsy. xml
error: Cannot access storage file ‘/var/lib/libvirt/images/vm- rsy. qcow2’( as uid: 107, gid: 107): No such file or directory
解决方案
mv /mnt/vm- rsy. qcow2 /var/Lib/Libvirt/images :将虚拟机文件恢复原位
virsh define vm- rsy.xmL#永久恢复虚拟机
三、虚拟机的快照#
qemu-img create -f qcow2 -b dd. qcow2 vm1
vm1:快照的名称
dd.qcow2:虚拟机的硬件文件
qcow2:快照的文件类型
脚本安装虚拟机快照
vim virtinstall.sh
#!/bin/bash
qemu-img create -f qcow2 -b
/var/lib/libvirt/images/$1.qcow2 /var/lib/libvirt/images/$2.qcow2
virt-install
–name $2
–ram 1024
–cpus 1
–disk /var/lib/libvirt/images/$2.qcow2,bus=virtio
–network bridge=br0,model=virtio
–import &
sh $1 $2 :运行脚本 ($1 $2表示形参)
重置虚拟机的脚本
vim virtinstall.sh
#!/bin/bash
virsh destory $1 :关闭$1虚拟机(为虚拟机快照)
rm -rf /var/lib/libvirt/images/$1.qcow2 删除虚拟机(虚拟机快照)
qemu-img create -f qcow2 -b /var/lib/libvirt/images/$2.qcow2 /var/lib/libvirt/images/$1.qcow2 (重新生成虚拟机快照)
virsh start $1
virt-viewer $1 &
四、虚拟机管理命令
virt-manager :开启虚拟机管理器
virsh list :显示正在运行的虚拟机
virsh list --all :查看所有的虚拟机
virsh start dd :打开虚拟机
virsh shutdown dd :关闭虚拟机
virsh destory dd : 强行关闭虚拟机
virt-viewer dd :显示虚拟机
virsh undefine dd :删除虚拟机(删除虚拟机是不删除虚拟机的硬盘,只删除虚拟机的硬件信息文件)
五、进程的信号
常用信号级别
1 ## 进程重新加载配置
2 ## 删除进程在内存中的数据
9 ## 强行结束,单个进程不可被阻塞
15 ## 正常关闭进程,可能会被阻塞
18 ## 运行暂停的进程
19 ## 暂停某个进程不能被阻塞
20 ## 把进程打入后台
kill -信号 进程PID
killall -信号 进程的名字
pkill -u student -信号