一、virsh簡介
virsh是libvirt提供的一種工具,它是一個命令行工具,可以用來管理KVM、Xen、QEMU等虛擬化程序,通過它可以進入虛擬化的控制台、創建、修改、刪除虛擬機等操作。在使用virsh刪除虛擬機之前,我們首先要了解virsh的基本用法和命令。
二、virsh刪除虛擬機的命令
刪除一個虛擬機需要使用virsh的”undefine”命令,具體命令格式如下:
virsh undefine 虛擬機名稱
其中,”虛擬機名稱”是指要刪除的虛擬機的名稱。
在執行以上命令之前,我們需要先確認虛擬機是否處於關閉狀態,否則會出現如下錯誤:
error: Failed to undefine domain centos7 error: Requested operation is not valid: domain has active devices
這個錯誤是因為虛擬機處於開啟狀態,不能直接刪除,需要先關閉虛擬機,再執行刪除操作。
三、關閉虛擬機的命令
關閉虛擬機需要使用virsh的”shutdown”命令,具體命令格式如下:
virsh shutdown 虛擬機名稱
其中,”虛擬機名稱”是指要關閉的虛擬機的名稱。執行以上命令後,虛擬機會立即開始關閉。
四、等待虛擬機關閉的命令
等待虛擬機關閉需要使用virsh的”domstate”命令,具體命令格式如下:
virsh domstate 虛擬機名稱
如果虛擬機已經關閉,則命令返回”shut off”;如果虛擬機處於關閉中,則命令返回”shutting down”。我們需要等待虛擬機完全關閉,再執行刪除操作。
五、刪除虛擬機的完整代碼
以下是完整的刪除虛擬機的代碼示例:
#!/bin/bash #定義虛擬機名稱 vm_name="centos7" #關閉虛擬機 virsh shutdown $vm_name #等待虛擬機關閉 while [ "$(virsh domstate $vm_name)" != "shut off" ]; do sleep 1 done #刪除虛擬機 virsh undefine $vm_name
以上代碼首先定義了要刪除的虛擬機名稱,然後使用virsh的”shutdown”命令關閉虛擬機,再使用”domstate”命令等待虛擬機關閉,最後使用”undefine”命令刪除虛擬機。
原創文章,作者:MSHM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144325.html