如何在 ESXi 5 上通过 ssh 关闭主机,以便它正确关闭客户机?

如何在 ESXi 5 上通过 ssh 关闭主机,以便它正确关闭客户机?

我已经通过 ssh 登录到 ESXi 5 主机。

所有客户机都运行着 vmware 工具,因此主机可以正确地关闭它们。

我希望 vSphere Client 中有与此菜单选项等效的选项:

在此处输入图片描述

它会自动关闭所有客户机(如果它们正在运行 vmware 工具),然后关闭主机本身。

ESXi 5 命令行上是否有这样的“智能”关闭所有命令?

答案1

我想我找到了答案。这个脚本可以做到这一点:

http://www.virtu-al.net/2010/01/06/powercli-shutdown-your-virtual-infrastructure/

请注意第 17ff 行中的部分,它等待虚拟机完全关闭

谢谢你,谢尔盖!

    连接VIServer MyVIServer
2    
3# 获取所有 ESX 主机
4 $ESXSRV = 获取 VMHost
5    
6 # 对于 ESX 主机上的每个虚拟机
7 Foreach ($VM 输入 ($ESXSRV | Get-VM)){
8 # 彻底关闭客户端
9 $VM | Shutdown-VMGuest -Confirm:$false
10 }
11   
12 # 设置在假设剩余已启动的客户端被卡住之前等待的时间
13 $waittime = 200 #秒
14   
15 $Time = (获取日期).TimeofDay
16 做 {
17 # 等待虚拟机完全关闭
18 睡眠 1.0
19 $timeleft = $waittime-($Newtime.seconds)
20 $numvms = ($ESXSRV | Get-VM | 其中 { $_.PowerState -eq "poweredOn" }).Count
21 写入“等待关闭 $numvms 个虚拟机或直到 $timeleft 秒”
22 $Newtime = (获取日期).TimeofDay - $Time
23 } 直到 ((@($ESXSRV | Get-VM | 其中 { $_.PowerState -eq "poweredOn" }).Count) -eq 0 -或 ($Newtime).Seconds -ge $waittime)
24   
25 # 关闭 ESX 主机
26 $ESXSRV | Foreach {获取查看 $_.ID} | Foreach {$_.ShutdownHost_Task($TRUE)}
二十七   
28 写入主机“关机完成”

相关内容