首页 > 代码库 > 烂泥:通过SSH终端管理ESXI虚拟机

烂泥:通过SSH终端管理ESXI虚拟机

本文首发于烂泥行天下

今天在ESXI上的一台windows系统的虚拟机(以下简称VM),突然nagios报警提示说:该机器发生故障。

既然问题出来了,就要解决。先在本机ping下那台VM,发现不能ping通。使用vsphere登录到ESXI,发现该VM还处于运行状态,但是无法远程进去,一直显示的是黑屏。

打算直接在ESXI上重启该机器,但是却提示如下的错误信息:

clip_image001

因为不想安装ESXI的其他管理工具,所以就打算通过ESXI的SSH直接重启VM。

通过SSH关闭VM有两种方法:一是使用ESXi命令行工具vim-cmd来关闭VM,二是通过系统发送信号关闭VM。

方法一、

我们先来介绍方法一,通过ssh终端登录到ESXI上。

第一、使用如下命令获取ESXI上的所有虚拟机清单,如下:

vim-cmd vmsvc/getallvms

clip_image002

可以看到目前该ESXI上有5台VM。

第二、获取报错VM的当前状态:

vim-cmd vmsvc/power.getstate VM_ID

clip_image003

可以看到目前该VM是处于运行状态的。

第三、使用第一步获取的VM_ID来关闭虚拟机:

vim-cmd vmsvc/power.shutdown VM_ID

clip_image004

根据上图,我们发下还是无法关闭VM。我们可以使用以下命令,强制关闭虚拟机:

vim-cmd vmsvc/power.off VM_ID

clip_image005

方法二、

现在我们来看方法二,要使用方法二关闭VM,我们要知道该ESXi上目前是否有VM正在运行,我们可以通过如下命令进行查看:

ps |grep vmx

clip_image006

注意上图中,我标记出来的pid号。该pid就是该VM进程的父pid。我们只需把该进程父pid杀死即可关闭VM,如下:

kill -9 9823

clip_image007

以上是就是在SSH下关闭ESXI的VM。那么下面我们通过SSH开启VM。命令如下:

vim-cmd vmsvc/power.on VM_ID

clip_image008

本文出自 “烂泥行天下” 博客,请务必保留此出处http://ilanni.blog.51cto.com/526870/1575578

烂泥:通过SSH终端管理ESXI虚拟机