Vmware-Esxi
如何在 ESXi 5 上通過 ssh 關閉主機,以便正確關閉來賓?
我通過 ssh 登錄到 ESXi 5 主機。
所有來賓都在執行 vmware 工具,因此它們可以被主機正確關閉。
我想要 vSphere 客戶端中此菜單選項的等效項:
它會自動關閉所有來賓(如果它們正在執行 vmware 工具),然後是主機本身。
ESXi 5 命令行上是否有這樣的“智能”關閉所有命令?
我想我找到了答案。這個腳本可以做到:
http://www.virtu-al.net/2010/01/06/powercli-shutdown-your-virtual-infrastructure/
請注意第 17ff 行中等待 VM 乾淨關閉的部分
謝謝謝爾蓋!
Connect-VIServer MyVIServer 2 3 # 獲取所有 ESX 主機 4 $ESXSRV = 獲取 VMHost 5 6 # 對於 ESX 主機上的每個虛擬機 7 Foreach ($VM in ($ESXSRV | Get-VM)){ 8 # 乾淨關閉guest 9 $虛擬機 | 關機-VMGuest -Confirm:$false 10 } 11 12 # 設置在假設剩餘的開機客人卡住之前等待的時間 13 $waittime = 200 #Seconds 14 15 $Time = (Get-Date).TimeofDay 16 做{ 17 # 等待虛擬機徹底關閉 18 睡眠 1.0 19 $timeleft = $waittime - ($Newtime.seconds) 20 $numvms = ($ESXSRV | Get-VM | Where { $_.PowerState -eq "poweredOn" }).Count 21 寫“等待關閉 $numvms VM 或直到 $timeleft 秒” 22 $Newtime = (Get-Date).TimeofDay - $Time 23 } 直到 ((@($ESXSRV | Get-VM | Where { $_.PowerState -eq "poweredOn" }).Count) -eq 0 -or ($Newtime).Seconds -ge $waittime) 24 25 # 關閉 ESX 主機 26 $ESXSRV | Foreach {獲取查看 $_.ID} | Foreach {$_.ShutdownHost_Task($TRUE)} 27 28 寫主機“關機完成”