Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- unset PATH
- VMCMD=/usr/bin/vmware-vim-cmd
- SLEEP=/bin/sleep
- GREP=/bin/grep
- AWK=/bin/awk
- SED=/bin/sed
- WC=/usr/bin/wc
- SUDO=/usr/bin/sudo
- ECHO=/bin/echo
- SERVICE=/sbin/service
- USERNAME=$1
- PASSWORD=$2
- COMMAND=$3
- VMID=$4
- function restartvmm {
- $ECHO -n "."
- $SUDO $SERVICE vmware-mgmt restart 2>&1 >/dev/null
- $SLEEP 2
- }
- function vmexec() {
- ACTION=$1
- $VMCMD -U $USERNAME -P $PASSWORD vmsvc$ACTION $VMID 2>&1|$GREP -v "Retrieved"
- }
- function getstate() {
- result=$(vmexec /power.getstate)
- fail=$($ECHO $result | $GREP "514" | $WC -l)
- if [ $fail -gt 0 ]; then
- echo "restarting vmware-mgmt"
- fi
- COUNTER=0
- while [ $fail -gt 0 ]; do
- restartvmm
- result=$(vmexec /power.getstate)
- fail=$(echo $result | $GREP "514" | $WC -l)
- let COUNTER=COUNTER+1
- if [ $COUNTER -eq 5 ]; then
- fail=1
- break
- fi
- done
- case $($ECHO $result | $SED -n '1{p;q}') in
- "Powered on")
- $ECHO "on"
- ;;
- "Powered off")
- $ECHO "off"
- ;;
- "Suspended")
- $ECHO "sus"
- ;;
- *)
- $ECHO "unknown"
- fail=1
- ;;
- esac
- }
- case "$COMMAND" in
- getstate)
- getstate
- ;;
- poweron)
- vmexec /power.on 2>&1 >/dev/null
- win=$(getstate|$GREP "on" | $WC -l)
- COUNTER=0
- while [ $win -lt 1 ]; do
- vmexec /power.on 2>&1 >/dev/null
- win=$(getstate|$GREP "on" | $WC -l)
- $SLEEP 1
- let COUNTER=COUNTER+1
- if [ $COUNTER -eq 5 ]; then
- fail=1
- break
- fi
- done
- if [ $win -lt 1 ]; then
- fail=1
- else
- fail=0
- fi
- ;;
- suspend)
- vmexec /power.suspend 2>&1 >/dev/null
- win=$(getstate|$GREP "on" | $WC -l)
- COUNTER=0
- while [ $win -lt 1 ]; do
- vmexec /power.suspend 2>&1 >/dev/null
- win=$(getstate|$GREP "on" | $WC -l)
- sleep 1
- let COUNTER=COUNTER+1
- if [ $COUNTER -eq 5 ]; then
- fail=1
- break
- fi
- done
- if [ $win -lt 1 ]; then
- fail=1
- else
- fail=0
- fi
- ;;
- *)
- echo "usage: $0 username password {getstate|poweron|suspend} VMID"
- fail=0
- ;;
- esac
- exit $fail
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement