天天看点

通过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虚拟机

继续阅读