1、远程启动或关闭ESX Server上的虚拟机 作者:upall 发布:2011-04-26 13:48 分类:工作 抢沙发 VMware提供了命令行管理虚拟机的接口,即vmware-cmd,通过这个命令行接口可以完成对虚拟机的诸多操作,比如重启、关闭、开机、配置快照等等。配合Plink.exe这个工具可以实现远程执行Vmware-cmd,plink相当于Putty的命令行模式。这样通过制作脚本,实现在远程批量操作虚拟机了。 文末有我使用的bat文件,配合plink和wol.exe(不需要putty)即可实现ESX的开、关机,其上虚拟机的开、关机。 一、准备工作 1、下载P
2、uTTY:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 下载PuTTY和plink,将两个文件放入同一文件夹内。 2、双击Putty,“Host Name”处填入ESXSrver主机的名称或IP地址;“Saved Sessions”随便填入一个连接名称,点击“Save”,保存链接: 3、重新打开PUTTY,双击刚才保存的VmServer06的链接,试验能否正确链接到ESXServer主机: 二、试验关闭/开启虚拟机 1、远程主机上,打开CMD命令行,定位到存放putty和plink的文件夹,输入如下
3、命令: 1 plink.exe -load “VmServer06″ -ssh -batch -l user -pw yourpass -m stop.txt 提示:“VmServer06”为前面保存的PUTTY的链接名称,“User”用来连接ESXServer的用户名,“Yourpass”SSH连接ESXServer的密码,“Stopt.txt”存放Vmware-cmd执行命令的文件 2、关机脚本“stop.txt”: 1 vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.v
4、mx stop 提示:/vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx 表示虚拟机存放镜像的路径,将stop.txt存放到与putty相同的路径。 3、运行步骤1中的命令,关闭Vmserver02的虚拟机: 说明:显示 stop<> =1,成功关闭虚拟机VmServer02 4、同理试验开启虚拟机,制作开机脚本“start.txt”,命令如下: 1 vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmGhost01/VmGhost01.vmx star
5、t exit 保存成start.txt。 5、CMD下输入命令: 1 plink.exe -load “VmServer06″ -ssh -batch -l user -pw yourpass -m start.txt 6、结果显示成功启动虚拟机: 三、制作开机/关机脚本。 1、按照试验的方法,将ESXServer上的虚拟机添加到Start.txt和Stop.txt中。 “start.txt” vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx start
6、 vmware-cmd /vmfs/volumes/VmServer06\:storage1//VmGhost01/VmGhost01.vmx start vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer04.vmx start exit “stop.txt”: vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx stop vmware-cmd /vmfs/volumes/
7、VmServer06\:storage1/VmGhost01/VmGhost01.vmx stop vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer04.vmx stop exit 2、制作plink命令的脚本 开机脚本start.bat 1 2 @echo off plink.exe -load “VmServer06″ -ssh -batch -l user -pw yourpass -m start.txt 关机脚本 1 2 3 4 @echo off
8、echo 确认要关闭虚拟机吗?确认按任意键继续;退出点击关闭
pause
plink.exe -load “VmServer06″ -ssh -batch -l user -pw yourpass -m stop.txt
现在在任意一台XP客户端双击运行脚本,就可以远程批量开启或关闭虚拟机了。
另一种方法:
先补充一下常用的命令:
1
2
vmware-cmd –l ##查看长长的.vmx位置
vmware-cmd vmx-path start
9、^%$#$% 看下如何用“vmware-vim-cmd”实现开机效果: 1 2 vmware-vim-cmd vmsvc/getallvms ##获取所有VM的信息,包括我们需要使用的Vmid,值得一赞的是,这里的输出结果太美观了(Putty窗口太窄,换行显示就不漂亮了) vmware-vim-cmd vmsvc/power.on vmid ##OK,启动虚拟机(注意替换“vmid”)! 另外,使用这种方法去修改网络以及其他配置时,也是更加的有效以及方便的。不过值得注意的时,修改网络配置后,一般需要使用 刷新命令 [refresh], 否则修改后,你getinfo时
10、就会发现,怎么好像没配置成功,这确实有些让人困惑,但是refresh后,一切都好了! vmware-vim-cmd: 1 2 3 4 [root@esx80 root]# vmware-vim-cmd Commands available under /: hostsvc/ proxysvc/ vimsvc/ help internalsvc/ solo/ vmsvc/ 介绍其中几项: hostsvc/ 包含的是一些关于host设置的命令,类似网络,硬件信息,存储,防火墙,各种服务等等…… vmsvc/ 则包含的是对Virtual Machine的一
11、些常规设置,类似查看状态,启动,关闭,快照管理,添加/扩展磁盘,等等…… vimsvc/ 包含的是一些权限,license等等更多VI Client以及VC中一些常规的设置 这里附上一个我正在使用的bat脚本: 用法: 1 2 3 4 5 6 7 8 esx on #远程打开ESX主机(需要一个wol.exe工具来发送“Wake-up packet”) esx off #远程关闭ESX主机 esx ste #查看ESX主机的状态 esx l #查看ESX上的虚拟主机列表(列表中有相应的vmid和虚似机的名称)(L的小写) esx 80 on #远程
12、打开ESX上vmid为80的虚拟主机 esx 80 off #远程关闭ESX上vmid为80的虚拟主机 esx 80 ste #查看ESX上vmid为80的虚拟主机的状态 esx ? #查看帮助 最后:1、记得让这个脚本找得到plink和wol,你可修改环境变量,或者指定为“d:\plink.exe”。 2、如果提示是否保存密钥,输入“y”或者“n”都可以,但是输入“y”的话,再次执行将不会再出现这个提示,密钥保存在“HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys”。 Esx.bat的代码: 1
13、 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 @rem =================================================== @rem 说明: @rem 用于启动或关闭ESX上的虚似主机 @rem 用法请使用命令“esx ?”查看。 @rem 【注意】需要配合p
14、link.exe和wol.exe才能正常工作。 @rem =================================================== @echo off ::=============配置================ set sshHost=192.168.0.250 set sshUser=root set sshPwd=upall ::================================ if '%1'=='?' goto howto if /i '%1'=='on' goto PowerOnEsx if
15、/i '%1'=='off' goto PowerOffEsx if /i '%1'=='ste' goto statusEsx if /i '%1'=='l' goto allVms if '%1'=='' (set vmid=80) else set vmid=%1 if '%2'=='' (set ste=on) else set ste=%2 if /i '%ste%'=='ste' set ste=getstate plink.exe -ssh -l %sshUser% -pw %sshPwd% %sshHost% vmware-vim-cmd vmsvc/p
16、ower.%ste% %vmid% goto end :PowerOnEsx wol 0002a5ae72bb rem wol后边的是ESX的网卡地址 goto end :PowerOffEsx plink.exe -ssh -l %sshUser% -pw %sshPwd% %sshHost% shutdown -h now goto end :statusEsx plink.exe -ssh -l %sshUser% -pw %sshPwd% %sshHost% service mgmt-vmware status goto end :all
17、Vms plink.exe -ssh -l %sshUser% -pw %sshPwd% %sshHost% vmware-vim-cmd vmsvc/getallvms goto end :howto echo 说明:通过plink控制ESX上虚拟机的on和off。 echo 没有vmid参数,on和off将作用于ESX本身, echo l参数(“L”的小写)可以列出所有虚拟机。 echo 用法:esx [vmid = 80] [on^|off^|ste = on] [l] echo 例子:esx 80 on echo 命令:plink.exe -ssh -
18、l sshUser -pw sshPwd sshHostIP vmware-vim-cmd vmsvc/power.on 80 :end <完> 囧rz-----------------我是分割线,超囧的分割线--------------------- 囧rz 远程批量启动或关闭ESXServer上的虚拟机 时间:2009-08-03 09:14来源: 作者:Abner Kou 点击: 1183 次 VMware提供了命令行管理虚拟机的接口,即vmware-cmd,通过这个命令行接口可以完成对虚拟机的诸多操作,比如重启、关闭、开机、配置快照等等。配合Plin
19、k.exe这个工具可以实现远程执行Vmware-cmd,plink相当于Putty的命令行模式。这样通过制作脚本,实现在远程 VMware提供了命令行管理虚拟机的接口,即vmware-cmd,通过这个命令行接口可以完成对虚拟机的诸多操作,比如重启、关闭、开机、配置快照等等。配合Plink.exe这个工具可以实现远程执行Vmware-cmd,plink相当于Putty的命令行模式。这样通过制作脚本,实现在远程批量操作虚拟机了。 一:准备工作 1:下载PUTTY http://www.chiark.greenend.org.uk/~sgtatham/putty/downl
20、oad.html 下载PUTTY和plink,将连个文件放入同一文件夹内 2:双击Putty,Host Name处填入ESXSrver主机的名称或IP地址;Saved Sessions随便填入一个连接名称,点击Save,保存链接 3:重新打开PUTTY,双击刚才保存的VmServer06的链接,试验能否正确链接到ESXServer主机 二:试验关闭、开启虚拟机 1:远程主机上,打开CMD命令行,定位到存放putty和plink的文件夹,输入如下命令 plink.exe -load “VmServer06″ -ssh -batc
21、h -l user -pw yourpass -m stop.txt VmServer06 前面保存的PUTTY的链接名称 User 用来连接ESXServer的用户名 Yourpass SSH连接ESXServer的密码 Stopt.txt 存放Vmware-cmd执行命令的文件 2:关机脚本stop.txt vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx stop exit /vmfs/volumes/VmServer06\:storage
22、1/VmServer02/VmServer02.vmx 表示虚拟机存放镜像的路径 将stop.txt存放到与putty相同的路径 3:运行步骤1中的命令,关闭Vmserver02的虚拟机 显示 stop<> =1,成功关闭虚拟机VmServer02 4:同理试验开启虚拟机,制作开机脚本start.txt,命令如下 vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmGhost01/VmGhost01.vmx start exit 保存成start.txt 5:CMD下输入命令
23、plink.exe -load “VmServer06″ -ssh -batch -l user -pw yourpass -m start.txt 6:结果显示成功启动虚拟机 三:制作开机、关机脚本 1:按照试验的方法,将ESXServer上的虚拟机添加到Start.txt和Stop.txt中 如start.txt vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx start vmware-cmd /vmfs/volumes/VmServer
24、06\:storage1//VmGhost01/VmGhost01.vmx start vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer04.vmx start exit stop.txt vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer02.vmx stop vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmGhost01/VmGhost01.vmx s
25、top vmware-cmd /vmfs/volumes/VmServer06\:storage1/VmServer02/VmServer04.vmx stop exit 2:制作plink命令的脚本 开机脚本start.bat @echo off plink.exe -load “VmServer06″ -ssh -batch -l user -pw yourpass -m start.txt 关机脚本 @echo off echo 确认要关闭虚拟机吗?确认按任意键继续;退出点击关闭 pause plink.exe -load “VmServer06″ -ssh -batch -l user -pw yourpass -m stop.txt 现在在任意一台XP客户端双击运行脚本,就可以远程批量开启或关闭虚拟机了 (责任编辑:admin)






