{"id":188726,"date":"2013-08-02T13:00:06","date_gmt":"2013-08-02T09:00:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=188726"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=188726","title":{"rendered":"<span class=\"post_title\">&quot;\/sbin\/powerOffVms&quot; \u0432 ESX 4.1<\/span>"},"content":{"rendered":"<div class=\"content html_format\"> \t\t\t\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0432 \u043a\u043e\u043d\u0442\u043e\u0440\u0435, \u0433\u0434\u0435 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u0437\u0430\u0434\u0430\u0447\u0443 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u0431\u0435\u0441\u043f\u0435\u0440\u0435\u0431\u043e\u0439\u043d\u0438\u043a \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043e\u0442 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u0427\u0430\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0435\u0433\u0430\u0435\u0442 \u043d\u0430 windows (\u043e \u043d\u0438\u0445 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u0443\u043c\u0430\u043b) \u0438 \u0447\u0430\u0441\u0442\u044c \u043d\u0430 esx\/esxi, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e, \u0438\u0431\u043e \u043e\u043f\u044b\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043a\u0441\u0430\u043c\u0438 \u0443 \u043c\u0435\u043d\u044f \u043e\u0447\u0435\u043d\u044c \u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432\u0441\u044f\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u041d\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0438 \u043d\u0430\u0434\u043e \u0435\u0435 \u0440\u0435\u0448\u0430\u0442\u044c.<br \/>  \u041d\u0430\u0447\u0430\u043b \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0438 \u044f \u043f\u0440\u044f\u043c \u043e\u0431\u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0448\u0435\u043b \u043d\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0432 esxi 5.x powerOffVms, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u0443 \u043d\u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u043f\u0446\u0438\u0438. \u041d\u043e \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0437\u043c\u0430 \u043f\u043e\u0443\u0431\u0430\u0432\u0438\u043b\u043e\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u0442\u0430\u043a\u043e\u0439 \u0448\u0442\u0443\u043a\u0438 \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u043e\u0441\u044c \u0432 esx \u0432\u0435\u0440\u0441\u0438\u0438. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0444\u0438\u0447\u0443 \u043d\u0430 bash \u0432 esx (\u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0435\u043c \u043e\u043d \u0438 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0434\u044b\u0448\u0438\u0442). <\/p>\n<p>  \u0412\u0441\u0435, \u0447\u0442\u043e \u043f\u043e\u0439\u0434\u0435\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0438\u0436\u0435, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435, \u043d\u043e \u043a\u0438\u0434\u0430\u0442\u044c \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u044f \u0441\u0434\u0435\u043b\u0430\u043b, \u044d\u0442\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u0438 \u043a\u0430\u043a\u0438\u043c\u0438 \u0436\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 esx \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a \u043c\u0430\u043d\u0443\u0430\u043b\u0430\u043c, \u0438\u043c\u0435\u0435\u043c \u043d\u0443\u0436\u043d\u043e\u0435\u2026 <\/p>\n<p>  vim-cmd vmsvc\/power.getstate \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b<br \/>  vim-cmd vmsvc\/power.shutdown \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u041e\u0421<br \/>  vim-cmd vmsvc\/power.off \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u041e\u0421<\/p>\n<p>  \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438, \u0430 \u0435\u0441\u043b\u0438 \u0431\u044b\u0442\u044c \u0442\u043e\u0447\u043d\u0435\u0435, \u0442\u043e \u0432 \u0445\u043e\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432\u044b\u0432\u043e\u0434 \u0438\u043c\u0435\u043d\u0438 \u043c\u0430\u0448\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0434\u0440\u0430\u0442\u044c \u0438\u0437<\/p>\n<p>  vim-cmd vmsvc\/get.summary<\/p>\n<p>  \u0417\u043d\u0430\u044f id \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0435\u0435 \u0438\u043c\u044f \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0433\u043e\u0441\u0442\u0435\u0432\u043e\u0439 \u041e\u0421. \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u041e\u0421, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 vmware tools \u0438 \u0442\u044b\u0447\u043a\u0430 \u00abguest shutdown\u00bb. \u0410 \u0435\u0449\u0435 \u0432\u0441\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u043b\u0430\u0441\u044c \u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u0430 \u0438\u043b\u0438 \u043f\u043e\u0434\u0432\u0438\u0441\u043b\u0430 \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b. \u041e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043a\u0443\u0440\u0438\u043c \u043c\u0430\u043d\u0443\u0430\u043b\u044b \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u0448\u0442\u0443\u043a\u0443, \u043a\u0430\u043a stopDelay, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 vsphere client, \u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d \u0440\u0430\u0432\u0435\u043d 120 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u043c. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0440\u0430\u0442\u044c \u0432\u043e\u0442 \u043e\u0442\u0441\u044e\u0434\u0430: <\/p>\n<p>  vim-cmd hostsvc\/hostconfig<\/p>\n<p>  \u041d\u043e \u0438 \u0442\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u044e\u0430\u043d\u0441: \u0435\u0441\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c, \u0442\u043e \u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. <br \/>  \u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u043c\u044b \u0438\u043c\u0435\u0435\u043c\u2026<\/p>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043c\u044f \u043c\u0430\u0448\u0438\u043d\u044b<\/p>\n<pre><code class=\"bash\"># get vm name via VMID # $1 - VMID function GetVMName () {                vmName=$(vim-cmd vmsvc\/get.summary $1 | grep &quot;name&quot; | sed 's\/.*&quot;\\(.*\\)&quot;[^&quot;]*$\/\\1\/') } <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u041e\u0431\u0440\u0430\u0449\u0430\u044e \u0435\u0449\u0435 \u0440\u0430\u0437 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u043e\u043d, \u0435\u0441\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c. \u0414\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u00ab\u043a\u043e\u0441\u0442\u044b\u043b\u044c\u00bb, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.<\/p>\n<pre><code class=\"bash\"># get stop delay options of vms function GetStopDelay () {         OUT=$(vim-cmd hostsvc\/hostconfig | grep &quot;stopDelay&quot; | sed 's\/[^-0-9]\/\/g')         stopDelay=( $OUT ) } <\/code><\/pre>\n<p>  \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 id \u043c\u0430\u0448\u0438\u043d\u044b \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438, \u0447\u0435\u0440\u0435\u0437 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u0438\u0442\u0430\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0434\u0432\u0438\u0441.<\/p>\n<pre><code class=\"bash\"># vm shutdown # passing parameters to the function # echo &quot;VMShutDown $1 $2&quot; # $1 - VMId, $2 - stopDelay function VMShutDown () {           GetVMName $1           stopTime=0           STATE=$(vim-cmd vmsvc\/power.getstate $1 | grep &quot;Power&quot;)         if [ &quot;$STATE&quot; = &quot;Powered off&quot; ]         then                 echo &quot;VM $1 ($vmName) is stopped. &quot;                 return 1         fi                  echo &quot;Call VM $1 ($vmName) shutdown...&quot;         vim-cmd vmsvc\/power.shutdown $1           sleep 5           if [ &quot;$stopTime&quot; -eq 0]         then                 echo &quot;Waiting for VM $1 ($vmName) shutdown...&quot;         fi           while [ &quot;$STATE&quot; != &quot;Powered off&quot; ]         do                 if [ &quot;$stopTime&quot; -ge &quot;$2&quot; ]                 then                         echo &quot;Shutdown of VM $1 ($vmName) causes to fail. Call power off!&quot;                         vim-cmd vmsvc\/power.off $1                         return 2                 fi                       STATE=$(vim-cmd vmsvc\/power.getstate $1 | grep &quot;Power&quot;)                 stopTime=$(($stopTime+5))                 sleep 5         done           echo &quot;VM $VM ($vmName) shutdown is successfully&quot;         return 3 } <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u043f\u043b\u0430\u043d\u0430\u0445 \u0431\u044b\u043b\u043e \u0445\u043e\u0442\u044c \u043a\u0430\u043a\u0430\u044f, \u043d\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u043e\u0444\u043e\u0440\u043c\u0438\u043b\u043e\u0441\u044c \u0432 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u2026<\/p>\n<pre><code class=\"bash\"># specific VM Shutdown # $1 - VMId function SpecificVMShutDown () {         GetVMName $1               GetBootOrder           element=1                  for VM in ${bootOrder[@]}         do                 if [ &quot;$VM&quot; -eq &quot;$1&quot; ]                 then                         GetVmStopDelay &quot;${stopDelay[0]}&quot; &quot;${stopDelay[&quot;$element&quot;]}&quot;                         VMShutDown $VM $currentDelay                         return 1                         fi                               element=$(($element+1))         done           echo &quot;VMId $1 is not found!!!&quot; }  <\/code><\/pre>\n<p>  \u0427\u0442\u043e \u044f \u0442\u0443\u0442 \u0434\u0435\u043b\u0430\u044e, \u043f\u043e\u043b\u0443\u0447\u0430\u044e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 GetBootOrder, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u0437 GetStopDelay. \u0418 \u043e\u043d\u0438 \u043e\u0431\u0430 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u043c\u0438 (\u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u044f \u0443\u043a\u0430\u0437\u0430\u043b \u0432\u044b\u0448\u0435). \u0422\u0443\u0442 \u044f \u0438\u0434\u0443 \u043d\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0443\u044e \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u044c, \u0438\u043d\u0430\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u043a\u043e\u0441\u0442\u044b\u043b\u044c. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 \u0434\u043b\u044f \u0442\u0435\u0445 \u043c\u0430\u0448\u0438\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0436\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u043e\u0431\u0449\u0435, \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u0438\u0445 \u0441\u043f\u0438\u0441\u043e\u043a \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e:<\/p>\n<p>  vim-cmd vmsvc\/getallvms<\/p>\n<pre><code class=\"bash\"># Get full list of VMs ID function GetAllVMs () {         OUT=$(vim-cmd vmsvc\/getallvms |grep -o '^[0-9]*')         allVMs=( $OUT ) } <\/code><\/pre>\n<p>  \u0418 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u044b, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u044e\u0442\u0441\u044f\u2026<\/p>\n<pre><code class=\"bash\"># Find missed VMs in boot order # Add missed VM to boot order array function FindMissedVMs () {         GetAllVMs           for aVM in ${allVMs[@]}         do                 exists=0                 for oVM in ${bootOrder[@]}                 do                         if [ &quot;$aVM&quot; -eq &quot;$oVM&quot; ]                         then                                 exists=1                                 break                         fi                 done                                  if [ &quot;$exists&quot; -eq 0 ]                 then                         bootOrder=( &quot;${bootOrder[@]}&quot; &quot;$aVM&quot; )                         stopDelay=( &quot;${stopDelay[@]}&quot; &quot;-1&quot; )                 fi         done } <\/code><\/pre>\n<p>  \u041d\u0443 \u0438 \u0441\u0430\u043c\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u2026 <\/p>\n<pre><code class=\"bash\"># get boot order of vms function GetBootOrder () {         OUT=$(vim-cmd hostsvc\/hostconfig | grep &quot;key = 'vim.VirtualMachine:&quot; | sed 's\/[^-0-9]\/\/g')         bootOrder=( $OUT )                  GetStopDelay         FindMissedVMs }  <\/code><\/pre>\n<p>  \u0421\u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435 \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438 GetVmStopDelay, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043a\u0430\u043a\u0443\u044e \u0436\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0422\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<pre><code class=\"bash\"># use default or optional delay # $1 - default delay, $2 optional delay function GetVmStopDelay () {         currentDelay=&quot;$1&quot;         if [ &quot;$2&quot; -gt 0 ]         then                 currentDelay=&quot;$2&quot;                fi } <\/code><\/pre>\n<p>  \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u043b\u0430, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0434\u0432\u0438\u0441\u0430\u043d\u0438\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u0435 (\u043d\u0430 \u043c\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0435\u0449\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e).<\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0435\u0431\u0435 \u0437\u0430\u0434\u0430\u0447\u0443 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0422\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0436\u0435 \u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0435 \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u0435\u043c \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043c\u0430\u0448\u0438\u043d\u043a\u0443 \u0432\u044b\u0448\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. <\/p>\n<pre><code class=\"bash\"># order shutdown all VMS function OrderShutDown () {         echo &quot;Call order shutdown all VMs&quot;           GetBootOrder           element=1           for VM in ${bootOrder[@]}         do                 #echo &quot;${stopDelay[&quot;$element&quot;]}&quot;                 GetVMName $VM                 echo &quot;Beginning shutdown process: $vmName (VMID: $VM)...&quot;                   GetVmStopDelay &quot;${stopDelay[0]}&quot; &quot;${stopDelay[&quot;$element&quot;]}&quot;                          VMShutDown $VM $currentDelay                 element=$(($element+1))         done           echo &quot;Order shutdown has been executed&quot; } <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0442\u0443\u0442 \u043d\u0430\u0434\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u043c\u0430\u0448\u0438\u043d \u043c\u043d\u043e\u0433\u043e, \u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0410 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u2013 \u043d\u0430\u0448\u0435 \u0432\u0441\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043c\u0430\u0448\u0438\u043d, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0435 \u0432\u0430\u0436\u0435\u043d.<\/p>\n<pre><code class=\"bash\"># verbose shutdown all VMS function VerboseShutDown () {         echo &quot;Call verbose shutdown all VMs&quot;                  GetBootOrder         for VM in ${bootOrder[@]}         do                 STATE=$(vim-cmd vmsvc\/power.getstate $VM | grep &quot;Power&quot;)                 if [ &quot;$STATE&quot; != &quot;Powered off&quot; ]                 then                         GetVMName $VM                         echo &quot;Call VM $VM ($vmName) shutdown&quot;                         vim-cmd vmsvc\/power.shutdown $VM                 fi         done         ControlVerboseShutDown }  <\/code><\/pre>\n<p>  \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u0431\u0435\u0437 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043f\u0440\u044f\u043c\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u00abvim-cmd vmsvc\/power.shutdown\u00bb. \u041d\u043e \u043a\u0430\u043a \u0431\u044b\u0442\u044c, \u0435\u0441\u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0438\u0437 \u043c\u0430\u0448\u0438\u043d \u043f\u043e\u0434\u0432\u0438\u0441\u043b\u043e. \u041d\u0430\u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b\u2026 \u0422\u0443\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f ControlVerboseShutDown, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442.\u0435. \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0441\u0432\u043e\u0435\u043c\u0443 stopDelay. \u0418\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u0443\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0434\u043e, \u0432\u0441\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u2013 \u0432\u0441\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u043e.<\/p>\n<pre><code class=\"bash\"># control process off verbose shutdown function ControlVerboseShutDown () {         echo &quot;Checking verbose shutdown all VMs&quot;           executed=0         stopTime=0           while [ &quot;$executed&quot; -eq 0 ]         do                 errorCount=0                 element=1                   for VM in ${bootOrder[@]}                 do                         GetVMName $VM                                  STATE=$(vim-cmd vmsvc\/power.getstate $VM | grep &quot;Power&quot;)                         if [ &quot;$STATE&quot; = &quot;Powered off&quot; ]                         then                                     #echo &quot;VM $VM ($vmName) is powered off. Checking next&quot;                                 element=$(($element+1))                                 continue                         fi                           if [ &quot;$stopTime&quot; -eq 0]                         then                                 echo &quot;Waiting for VM $1 ($vmName) shutdown...&quot;                         fi                                                  GetVmStopDelay &quot;${stopDelay[0]}&quot; &quot;${stopDelay[&quot;$element&quot;]}&quot;                                                  if [ &quot;$stopTime&quot; -ge &quot;$currentDelay&quot; ]                         then                                 echo &quot;Shutdown of VM $VM ($vmName) causes to fail. Call power Off!&quot;                                 vim-cmd vmsvc\/power.off $VM                         fi                           errorCount=$(($errorCount+1))                         element=$(($element+1))                 done                                  if [ &quot;$errorCount&quot; -eq 0 ]                 then                         echo &quot;Verbose shutdown has been executed&quot;                         executed=1                         return 1                         fi                                  stopTime=$(($stopTime+10))                 sleep 10                 echo &quot;Remaining time: $stopTime&quot;         done } <\/code><\/pre>\n<p>  \u041d\u0443 \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438\u2026<\/p>\n<pre><code class=\"bash\">while getopts &quot;:os:v&quot; optname do         case &quot;$optname&quot; in         &quot;o&quot;)                 OrderShutDown                 exit 1         ;;         &quot;s&quot;)                 VMID=$OPTARG                 SpecificVMShutDown &quot;$VMID&quot;                 exit 2         ;;         &quot;v&quot;)                 VerboseShutDown                 exit 3         ;;         esac done <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 powerOffVms esxi 5.1. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0438\u0437\u0443\u0447\u0438\u043b\u0438\u0441\u044c, \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043e\u0441\u043d\u043e\u0432\u044b bash, \u0443\u0442\u0438\u043b\u0438\u0442\u044b grep \u0438 sed \u0438 \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439. <br \/>  \u042d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438:<\/p>\n<p>  PowerShell scripts for PowerCLI<br \/>  vMA with bash scripting<br \/>  pyshpere api<br \/>  VIX API<\/p>\n<p>  \u041d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u044f \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0432\u0441\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u043d\u0430 esxi 5.1, \u0430 \u0442\u0430\u043c \u0431\u0430\u0448\u0430 \u043d\u0435\u0442\u0443 (\u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c). \u0412\u0441\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/188726\/\"> http:\/\/habrahabr.ru\/post\/188726\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\"> \t\t\t\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0432 \u043a\u043e\u043d\u0442\u043e\u0440\u0435, \u0433\u0434\u0435 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e, \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u043e \u0437\u0430\u0434\u0430\u0447\u0443 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u0431\u0435\u0441\u043f\u0435\u0440\u0435\u0431\u043e\u0439\u043d\u0438\u043a \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043e\u0442 \u0430\u043a\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432. \u0427\u0430\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0435\u0433\u0430\u0435\u0442 \u043d\u0430 windows (\u043e \u043d\u0438\u0445 \u044f \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u0443\u043c\u0430\u043b) \u0438 \u0447\u0430\u0441\u0442\u044c \u043d\u0430 esx\/esxi, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u043b\u0438 \u043c\u0435\u043d\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e, \u0438\u0431\u043e \u043e\u043f\u044b\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043a\u0441\u0430\u043c\u0438 \u0443 \u043c\u0435\u043d\u044f \u043e\u0447\u0435\u043d\u044c \u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0432\u0441\u044f\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u041d\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0438 \u043d\u0430\u0434\u043e \u0435\u0435 \u0440\u0435\u0448\u0430\u0442\u044c.<br \/>  \u041d\u0430\u0447\u0430\u043b \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0438 \u044f \u043f\u0440\u044f\u043c \u043e\u0431\u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0448\u0435\u043b \u043d\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u0432 esxi 5.x powerOffVms, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0433\u043e\u0441\u0442\u0435\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u0443 \u043d\u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u043f\u0446\u0438\u0438. \u041d\u043e \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0437\u043c\u0430 \u043f\u043e\u0443\u0431\u0430\u0432\u0438\u043b\u043e\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u0442\u0430\u043a\u043e\u0439 \u0448\u0442\u0443\u043a\u0438 \u043d\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u043e\u0441\u044c \u0432 esx \u0432\u0435\u0440\u0441\u0438\u0438. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0444\u0438\u0447\u0443 \u043d\u0430 bash \u0432 esx (\u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0435\u043c \u043e\u043d \u0438 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0434\u044b\u0448\u0438\u0442). <\/p>\n<p>  \u0412\u0441\u0435, \u0447\u0442\u043e \u043f\u043e\u0439\u0434\u0435\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0438\u0436\u0435, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435, \u043d\u043e \u043a\u0438\u0434\u0430\u0442\u044c \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-188726","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/188726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=188726"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/188726\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=188726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=188726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=188726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}