10、编写建立虚拟机快照的脚本,实际就是针对当前虚拟机状态的克隆
# vim clone.sh
#!/bin/bash
IMG_DIR=/var/lib/libvirt/images
BASE_VM=rhel6base
E_NOINPUT=65
E_NOTNUM=66
E_OUT_OF_RANGE=67
E_VM_EXISTS=68
read -p "please input a vm number:" NEW_VMNU
if [ -z $NEW_VMNU ]; then
echo "You must input a number."
exit $E_NOINPUT
fi
if [ $NEW_VMNU != $(echo"$NEW_VMNU*1" | bc) ]; then
echo "You must input a number."
exit $E_NOTNUM
fi
if [ $NEW_VMNU -lt 1 -o $NEW_VMNU -gt 254]; then
echo "You must input a number between 1 and 254"
exit $E_OUT_OF_RANGE
fi
NEW_VM=${BASE_VM}node${NEW_VMNU}
if [ -e $IMG_DIR/$NEW_VM.img ]; then
echo "$NEW_VM already exists"
exit $E_VM_EXISTS
fi
echo -en "creating diskimage......\t\t"
qemu-img create -b $IMG_DIR/$BASE_VM.img -fqcow2 $IMG_DIR/$NEW_VM.img &> /dev/null
echo -e "\e[32m[OK]\e[0m"
echo
virsh dumpxml $BASE_VM >/tmp/$BASE_VM.xml
MAC_ADDR=$(echo"obase=16;$NEW_VMNU" | bc)
sed -i"/<name>$BASE_VM/s/$BASE_VM/$NEW_VM/" /tmp/$BASE_VM.xml
sed -i"/<uuid>/s/<uuid>.\{36\}/<uuid>$(uuidgen)/"/tmp/$BASE_VM.xml
sed -i "/$BASE_VM\.img/s/$BASE_VM\.img/$NEW_VM\.img/"/tmp/$BASE_VM.xml
sed -i "/macaddress/s/00'/$MAC_ADDR'/" /tmp/$BASE_VM.xml
virsh define /tmp/$BASE_VM.xml &>/dev/null
echo "$NEW_VM created."
11、编写删除快照的脚本
# vim undefine.sh
#!/bin/bash
IMG_DIR=/var/lib/libvirt/images
BASE_VM=rhel6basenode
read -p "please input a vm number:" NEW_VMNU
virsh undefine ${BASE_VM}${NEW_VMNU}
rm -rf ${IMG_DIR}/${BASE_VM}${NEW_VMNU}.img