KVM脚本批量管理虚拟机

1、KVM批量管理脚本
[root@localhost ~]# cat kvm.sh 
#!/bin/bash
echo
echo "------显示当前所有虚拟机状态-----"
virsh list --all
list=`virsh list | awk 'NR > 2 {print $2}'`
echo -e "1、重启\n2、关机\n3、开机\n4、强制关机\n5、开机自启\n6、显示未开机自启的主机\n7、取消单台主机开机自启\n8、查看主机网卡MAC地址\n"
read -p  "Ctrl+C退出,请输入对应数字:" NUM
case $NUM in 
	1)
echo "重启所有虚拟机开始。。。"
echo
for NAME in $list
        do
virsh reboot $NAME
        done
	;;

	2)
echo "关闭所有虚拟机开始。。。"
echo
for NAME in $list
        do
virsh shutdown $NAME
        done
	;;

        3)
echo "打开所有虚拟机开始。。。"
echo
for i in  $(virsh list --name --inactive)
        do
virsh start $i
        done
        ;;

	4)
echo "强制关闭所有虚拟机开始。。。"
echo
for NAME in $list
	do 
virsh destroy $NAME
	done
	;;

        5)
echo "设置所有虚拟机自动开机开始。。。"
echo
for NAME in $list
        do
virsh autostart $NAME
        done
        ;;

	6)
echo "未开机自启的机器如下:"
echo 
virsh list --no-autostart | awk 'NR > 2 {print $2}'
	;;

	7)
read -p "请输入需要取消开机自启的主机名称:" host
virsh autostart --disable --domain $host
	;;

	8)
read -p "请输入需要查询网卡MAC地址的主机名称:" host
virsh dumpxml $host | grep mac | awk 'NR > 2 {print $2}'
	;;

	*)
echo "请输入数字1-7中任意一个"
	;;
esac
#第二次case判断,如果不是执行开关机、重启等,无需显示执行结果,直接退出
case $NUM in
	[1-4])
echo "5秒后显示一次结果"
sleep 5
virsh list --all
echo "5秒后再显示一次结果"
sleep 5
virsh list --all
exit 0
	;;
	
	*)
exit 0
	;;
esac

2、Windows虚拟机硬盘扩容

virsh domblklist
virsh domblklist win2008r2-clone 
qemu-img info /var/lib/libvirt/images/win2008r2-clone.qcow2
qemu-img resize /var/lib/libvirt/images/win2008r2-clone.qcow2 +20G
qemu-img info /var/lib/libvirt/images/win2008r2-clone.qcow2
cd /var/lib/libvirt/images/
cd /etc/libvirt/qemu/
virsh define win2008r2-clone.xml


最后编辑于:2023/01/11作者: admin

发表评论