-
-
Save jpluimers/e2cd44ed996639ffa97d to your computer and use it in GitHub Desktop.
#!/bin/sh | |
VMS=`vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1}'` | |
for VM in $VMS ; do | |
# echo "Probing VM with id: $VM." | |
PWR=`vim-cmd vmsvc/power.getstate $VM | grep -v "Retrieved runtime info"` | |
name=`vim-cmd vmsvc/get.config $VM | grep -i "name =" | awk '{print $3}' | head -1 | awk -F'"' '{print $2}'` | |
echo "VM with id $VM has power state $PWR (name = $name)." | |
done |
Hi! Thanks for your script!
If you have comments in yor VM's, the script will output some errors like:
(vim.fault.NotFound) {
faultCause = (vmodl.MethodFault) null,
faultMessage =
msg = "Unable to find a VM corresponding to "something in the comment"
}
To keep this nice and beautiful, I added a regex check for numeric values in the for-loop:
#!/bin/sh
VMS=vim-cmd vmsvc/getallvms | grep -v Vmid | awk '{print $1}'
for VM in $VMS ; do
if echo $VM | grep -e '^[0-9]' >/dev/null; then
# echo "Probing VM with id: $VM."
PWR=vim-cmd vmsvc/power.getstate $VM | grep -v "Retrieved runtime info"
name=vim-cmd vmsvc/get.config $VM | grep -i "name =" | awk '{print $3}' | head -1 | awk -F'"' '{print $2}'
echo "VM with id $VM has power state $PWR (name = $name)."
fi
done
Hi, can you update for just show the power on VMs, not all. Many Thanks.
Hope you don't mind my comment (I'm a fan of awk):
You can write
as
which saves a subprocess (grep)