Advertisement
Guest User

Untitled

a guest
May 13th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #!/bin/bash
  2. unset PATH
  3. VMCMD=/usr/bin/vmware-vim-cmd
  4. SLEEP=/bin/sleep
  5. GREP=/bin/grep
  6. AWK=/bin/awk
  7. SED=/bin/sed
  8. WC=/usr/bin/wc
  9. SUDO=/usr/bin/sudo
  10. ECHO=/bin/echo
  11. SERVICE=/sbin/service
  12.  
  13. USERNAME=$1
  14. PASSWORD=$2
  15. COMMAND=$3
  16. VMID=$4
  17.  
  18. function restartvmm {
  19. $ECHO -n "."
  20. $SUDO $SERVICE vmware-mgmt restart 2>&1 >/dev/null
  21. $SLEEP 2
  22. }
  23.  
  24. function vmexec() {
  25. ACTION=$1
  26. $VMCMD -U $USERNAME -P $PASSWORD vmsvc$ACTION $VMID 2>&1|$GREP -v "Retrieved"
  27. }
  28.  
  29. function getstate() {
  30. result=$(vmexec /power.getstate)
  31. fail=$($ECHO $result | $GREP "514" | $WC -l)
  32. if [ $fail -gt 0 ]; then
  33. echo "restarting vmware-mgmt"
  34. fi
  35. COUNTER=0
  36. while [ $fail -gt 0 ]; do
  37. restartvmm
  38. result=$(vmexec /power.getstate)
  39. fail=$(echo $result | $GREP "514" | $WC -l)
  40. let COUNTER=COUNTER+1
  41. if [ $COUNTER -eq 5 ]; then
  42. fail=1
  43. break
  44. fi
  45. done
  46. case $($ECHO $result | $SED -n '1{p;q}') in
  47. "Powered on")
  48. $ECHO "on"
  49. ;;
  50. "Powered off")
  51. $ECHO "off"
  52. ;;
  53. "Suspended")
  54. $ECHO "sus"
  55. ;;
  56. *)
  57. $ECHO "unknown"
  58. fail=1
  59. ;;
  60. esac
  61. }
  62.  
  63.  
  64. case "$COMMAND" in
  65. getstate)
  66. getstate
  67. ;;
  68. poweron)
  69. vmexec /power.on 2>&1 >/dev/null
  70. win=$(getstate|$GREP "on" | $WC -l)
  71. COUNTER=0
  72. while [ $win -lt 1 ]; do
  73. vmexec /power.on 2>&1 >/dev/null
  74. win=$(getstate|$GREP "on" | $WC -l)
  75. $SLEEP 1
  76. let COUNTER=COUNTER+1
  77. if [ $COUNTER -eq 5 ]; then
  78. fail=1
  79. break
  80. fi
  81. done
  82. if [ $win -lt 1 ]; then
  83. fail=1
  84. else
  85. fail=0
  86. fi
  87. ;;
  88. suspend)
  89. vmexec /power.suspend 2>&1 >/dev/null
  90. win=$(getstate|$GREP "on" | $WC -l)
  91. COUNTER=0
  92. while [ $win -lt 1 ]; do
  93. vmexec /power.suspend 2>&1 >/dev/null
  94. win=$(getstate|$GREP "on" | $WC -l)
  95. sleep 1
  96. let COUNTER=COUNTER+1
  97. if [ $COUNTER -eq 5 ]; then
  98. fail=1
  99. break
  100. fi
  101. done
  102. if [ $win -lt 1 ]; then
  103. fail=1
  104. else
  105. fail=0
  106. fi
  107. ;;
  108.  
  109.  
  110.  
  111.  
  112. *)
  113. echo "usage: $0 username password {getstate|poweron|suspend} VMID"
  114. fail=0
  115. ;;
  116. esac
  117.  
  118. exit $fail
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement