How to shutdown a virtual machine on ESXi5 over an ssh terminal session?
How can I shutdown a virtual machine when I am on the commandline of an ESXi5 host over ssh?
Sidenote:
To enable scripts on other machines to login to the ESXi without password, add the public key of the user on the other machine to the ESXi's "/etc/ssh/keys-root/authorized_keys" if you want to login as root. If you want to login as user x add the key to "/etc/ssh/keys-x/authorized_keys".
From the section 'Using the ESXi 5.0 esxcli command to power off a virtual machine' in KB1014165 at the VMWare Knowledge base:
The esxcli command can be used locally or remotely to power off a virtual machine running on ESXi 5.0. For more information, see the esxcli vm Commands section of the vSphere Command-Line Interface Reference.
Open a console session where the esxcli tool is available, either in the ESXi Shell, the vSphere Management Assistant (vMA), or the location where the vSphere Command-Line Interface (vCLI) is installed.
Get a list of running virtual machines, identified by World ID, UUID, Display Name and path to the .vmx configuration file, using the command:
esxcli vm process list
Power off one of the virtual machines from the list using the command:
esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber
Note: Three power-off methods are available. Soft is the most graceful, hard performs an immediate shutdown, and force should be used as a last resort.
Repeat step 2 and validate that the virtual machine is no longer running.
I hope this helps :)
You can use vim-cmd:
Here is an example (shutdown only one VM: SRV1):
[root@ESX1:~] vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version
1 SRV2 [NAS] SRV2/SRV2.vmx winLonghornGuest vmx-08
2 SRV1 [SAN] SRV1/SRV1.vmx winLonghornGuest vmx-08
[root@ESX1:~] vim-cmd vmsvc/power.shutdown 2
You can also shutdown all host VMs:
/sbin/shutdown.sh && /sbin/poweroff
Extracted from: http://www.sysadmit.com/2016/07/vmware-esxi-apagar-todas-las-vms-desde-SSH.html