WMware ESXI – suspend all guests

I have an VMware ESXI 5 which I used for testing things, but I don’t want it to run all the time, and using the vSphere Client to stop all the VM’s and then stop the ESXI server is a bit too much effort.

So I figured out how to do it from the commandline using ‘vim-cmd’.


#/bin/sh

VMS=`vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1}'`
for VM in $VMS ; do
     PWR=`vim-cmd vmsvc/power.getstate $VM | grep -v "Retrieved runtime info"`
     if [ "$PWR" == "Powered on" ] ; then
          name=`vim-cmd vmsvc/get.config $VM | grep -i "name =" | awk '{print $3}' | head -1 | cut -d "\"" -f2`
          echo "Powered on: $name"
          echo "Suspending: $name"
          vim-cmd vmsvc/power.suspend $VM > /dev/null &
     fi
done

while true ; do
     RUNNING=0
     for VM in $VMS ; do
          PWR=`vim-cmd vmsvc/power.getstate $VM | grep -v "Retrieved runtime info"`
          if [ "$PWR" == "Powered on" ] ; then
          echo "Waiting..."
          RUNNING=1
          fi
     done
     if [ $RUNNING -eq 0 ] ; then
          echo "Gone..."
          break
     fi
     sleep 1
done
echo "Now we suspend the Host..."
vim-cmd hostsvc/standby_mode_enter

This is working just fine, until one discovers the there is no where to store files on the ESXI servers file system without having to restore them after a reboot.

A bit of googing gave me an answer, create a directory in one of the datastores and save it there.

Like in ‘/vmfs/volumes/datastore1/scripts/’, where it will stay after a reboot.

Now to wake the host again, requires that one enable wake-on-lan (wake on PCI and PCIe normally should do it), and then use the wakelan / wol utility;

# wol <mac addr>

This it’s possible to hide ones noisy computers somewhere far far away.

4 thoughts on “WMware ESXI – suspend all guests”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by sweet Captcha