天天看點

通過SSH終端管理ESXI虛拟機

今天在esxi上的一台windows系統的虛拟機(以下簡稱vm),突然nagios報警提示說:該機器發生故障。

既然問題出來了,就要解決。先在本機ping下那台vm,發現不能ping通。使用vsphere登入到esxi,發現該vm還處于運作狀态,但是無法遠端進去,一直顯示的是黑屏。

打算直接在esxi上重新開機該機器,但是卻提示如下的錯誤資訊:

通過SSH終端管理ESXI虛拟機

因為不想安裝esxi的其他管理工具,是以就打算通過esxi的ssh直接重新開機vm。

通過ssh關閉vm有兩種方法:一是使用esxi指令行工具vim-cmd來關閉vm,二是通過系統發送信号關閉vm。

<b>方法一、</b>

我們先來介紹方法一,通過ssh終端登入到esxi上。

第一、使用如下指令擷取esxi上的所有虛拟機清單,如下:

vim-cmd vmsvc/getallvms

通過SSH終端管理ESXI虛拟機

可以看到目前該esxi上有5台vm。

第二、擷取報錯vm的目前狀态:

vim-cmd vmsvc/power.getstate vm_id

通過SSH終端管理ESXI虛拟機

可以看到目前該vm是處于運作狀态的。

第三、使用第一步擷取的vm_id來關閉虛拟機:

vim-cmd vmsvc/power.shutdown vm_id

通過SSH終端管理ESXI虛拟機

根據上圖,我們發下還是無法關閉vm。我們可以使用以下指令,強制關閉虛拟機:

vim-cmd vmsvc/power.off vm_id

通過SSH終端管理ESXI虛拟機

<b>方法二、</b>

現在我們來看方法二,要使用方法二關閉vm,我們要知道該esxi上目前是否有vm正在運作,我們可以通過如下指令進行檢視:

ps |grep vmx

通過SSH終端管理ESXI虛拟機

注意上圖中,我标記出來的pid号。該pid就是該vm程序的父pid。我們隻需把該程序父pid殺死即可關閉vm,如下:

kill -9 9823

通過SSH終端管理ESXI虛拟機

以上是就是在ssh下關閉esxi的vm。那麼下面我們通過ssh開啟vm。指令如下:

vim-cmd vmsvc/power.on vm_id

通過SSH終端管理ESXI虛拟機

繼續閱讀