vmrun命令

VMWare提供了vmrun与VIX API两种手段使用户可以通过程序对虚拟机进行控制。
在官方文档中给出了详细的说明和示例代码。
          vmrun:http://www.vmware.com/pdf/vix162_vmrun_command.pdf
          VIX API: http://www.vmware.com/support/developer/vix-api/
     

       vmrun是一种命令行控制的手段,但是可以通过Shell脚本实现连续多个操作的自动化。而VIXAPI则是一种程序设计的方案,支持C、Perl和VB三种语言。从功能上来说,VIXAPI提供虚拟机状态查询函数,有更强的能力。例如:控制一个虚拟机恢复到某个镜像,然后登录到GuestOS中,运行其中的某个可执行文件在这3个动作中,恢复到指定镜像是异步操作,如果使用VIXAPI实现,可以查询恢复操作是否完成,恢复完成之后再尝试登录到GuestOS;而要通过vmrun实现则比较困难,因为vmrun不具有查询虚拟机状态的能力,所以只能sleep足够长的时间之后再去执行登录操作。
       但vmrun也不是完全没有优势。分别用vmrun和VIX API实现每隔一段时间就将虚拟机恢复到指定虚拟机镜像的功能,当双方都只需要操作一台虚拟机的时候,都能做到长期稳定工作;当它们需要面对10台甚至更多
的虚拟机的时候,VIX API很快就会出故障(1),而vmrun仍然能够稳定地工作。

 

 

    (1)通常遇到的故障是:虚拟机提示缺少某个.vmdk文件。原因是VMWare虚拟机启动时会创建临时的.vmdk文件,并通过修改.vmx中的硬盘路径,使当前的硬盘为临时的.vmdk。当VIXAPI面对大量虚拟机时,常常会与需要操作的虚拟机失去连接,此时.vmx文件中的硬盘路径被修改,但是临时.vmdk文件被删除,于是虚拟机报错。要修复这个故障,只需要把.vmx文件中的硬盘 路径改为实际存在的某个.vmdk文件即可

 

1、简介

       VMWare提供了vmrun与VIX API两种手段使用户可以通过程序对虚拟机进行控制。vmrun是一种命令行控制的手段,但是可以通过Shell脚本实现连续多个操作的自动化。


2、语法

Usage: vmrun COMMAND [PARAMETERS]
Authentication flags
-gu <userName in guest OS>
-gp <password in guest OS>


POWER COMMANDS           PARAMETERS           DESCRIPTION
start                    Path to vmx file     Start a VM or Team
                         or vmtm file
                         [gui|nogui]
stop                     Path to vmx file     Stop a VM or Team
                         or vmtm file
                         [hard|soft]
reset                    Path to vmx file     Reset a VM or Team
                         or vmtm file
                         [hard|soft]
suspend                  Path to vmx file     Suspend a VM or Team
                         or vmtm file
                         [hard|soft]


SNAPSHOT COMMANDS        PARAMETERS           DESCRIPTION
listSnapshots            Path to vmx file     List all snapshots in a VM
snapshot                 Path to vmx file     Create a snapshot of a VM
                         Snapshot name
deleteSnapshot           Path to vmx file     Remove a snapshot from a VM
                         Snapshot name
revertToSnapshot         Path to vmx file     Set VM state to a snapshot
                         Snapshot name


GUEST OS COMMANDS        PARAMETERS           DESCRIPTION
runProgramInGuest        Path to vmx file     Run a program in Guest OS
                         Program
                         [Program arguments]
fileExistsInGuest        Path to vmx file     Check if a file exists in Guest OS
                         Path to file in guest
setSharedFolderState     Path to vmx file     Modify a Host-Guest shared folder
                         Share name
                         New host path
addSharedFolder          Path to vmx file     Add a Host-Guest shared folder
                         Share name
                         Host path
removeSharedFolder       Path to vmx file     Remove a Host-Guest shared folder
                         Share name
listProcessesInGuest     Path to vmx file     List running processes in Guest OS
killProcessInGuest       Path to vmx file     Kill a process in Guest OS
                         process id
runScriptInGuest         Path to vmx file     Run a script in Guest OS
                         Interpreter path
                         script_text
deleteFileInGuest        Path to vmx file     Delete a file in Guest OS
                         File
createDirectoryInGuest   Path to vmx file     Create a directory in Guest OS
                         Directory path
deleteDirectoryInGuest   Path to vmx file     Delete a directory in Guest OS
                         Directory path
listDirectoryInGuest     Path to vmx file     List a directory in Guest OS
                         Directory path
copyFileFromHostToGuest  Path to vmx file     Copy a file from host OS to guest OS
                         Path on host
                         Path in guest
copyFileFromGuestToHost  Path to vmx file     Copy a file from guest OS to host OS
                         Path in guest
                         Path on host
renameFileInGuest        Path to vmx file     Rename a file in Guest OS
                         Original name
                         New name

GENERAL COMMANDS         PARAMETERS           DESCRIPTION
list                                          List all running VMs
upgradevm                Path to vmx file     Upgrade VM file format, virtual hw
installtools             Path to vmx file     Install Tools in Guest OS


3、示例

        1)开启虚拟机

        vmrun start "/opt/VM_OS/RH_OS_B/Red Hat Enterprise Linux 5 64-bit.vmx" nogui|gui

        2)停止虚拟机

        vmrun stop "/opt/VM_OS/RH_OS_B/Red Hat Enterprise Linux 5 64-bit.vmx" nogui|gui

        3)重启虚拟机
        vmrun restart "/opt/VM_OS/RH_OS_B/Red Hat Enterprise Linux 5 64-bit.vmx" nogui|gui

       4)列出正在运行的虚拟机
        vmrun list


 

 

下面整理了一发命令:

 

vmrun -T ws start "/vmware/lvs1/lvs.vmx" nogui #无图形界面启动虚拟机(-T是区分宿主机的类型,ws|server|server1|fusion|esx|vc|player,常用的是ws|esx|player)
vmrun start "/vmware/lvs1/lvs.vmx" gui #带图形界面启动虚拟机
vmrun stop "/vmware/lvs1/lvs.vmx" #可跟参数hard强制关闭虚拟机(相当于直接关电源)|soft正常关闭虚拟机
vmrun reset "/vmware/lvs1/lvs.vmx" #可跟参数hard冷重启虚拟机|soft热重启虚拟机
vmrun suspend  "/vmware/lvs1/lvs.vmx" #可分参数hard|soft挂起虚拟机
vmrun pause  "/vmware/lvs1/lvs.vmx" #暂停虚拟机
vmrun unpause  "/vmware/lvs1/lvs.vmx" #停止暂停虚拟机    
vmrun list #列出正在运行的虚拟机
vmrun -T ws snapshot "/vmware/lvs1/lvs.vmx" snapshotName #创建一个快照
vmrun -T ws reverToSnapshot "/vmware/lvs1/lvs.vmx" snapshotName #从一个快照中恢复虚拟机
vmrun -T ws listSnapshots "/vmware/lvs1/lvs.vmx" #列出快照
vmrun -T ws deleteSnapshot "/vmware/lvs1/lvs.vmx" snapshotName #删除一个快照
vmrun命令帮助
Shell
EPP:/vmware # vmrun vmrun version 1.15.0 build-2985596 Usage: vmrun [AUTHENTICATION-FLAGS] COMMAND [PARAMETERS] AUTHENTICATION-FLAGS -------------------- These must appear before the command and any command parameters. -h <hostName> (not needed for Workstation) -P <hostPort> (not needed for Workstation) -T <hostType> (ws|server|server1|fusion|esx|vc|player) for example, use '-T server' for Server 2.0 use '-T server1' for Server 1.0 use '-T ws' for VMware Workstation use '-T ws-shared' for VMware Workstation (shared mode) use '-T esx' for VMware ESX use '-T vc' for VMware vCenter Server -u <userName in host OS> (not needed for Workstation) -p <password in host OS> (not needed for Workstation) -vp <password for encrypted virtual machine> -gu <userName in guest OS> -gp <password in guest OS> POWER COMMANDS PARAMETERS DESCRIPTION -------------- ---------- ----------- start Path to vmx file Start a VM or Team [gui|nogui] stop Path to vmx file Stop a VM or Team [hard|soft] reset Path to vmx file Reset a VM or Team [hard|soft] suspend Path to vmx file Suspend a VM or Team [hard|soft] pause Path to vmx file Pause a VM unpause Path to vmx file Unpause a VM SNAPSHOT COMMANDS PARAMETERS DESCRIPTION ----------------- ---------- ----------- listSnapshots Path to vmx file List all snapshots in a VM [showTree] snapshot Path to vmx file Create a snapshot of a VM Snapshot name deleteSnapshot Path to vmx file Remove a snapshot from a VM Snapshot name [andDeleteChildren] revertToSnapshot Path to vmx file Set VM state to a snapshot Snapshot name GUEST OS COMMANDS PARAMETERS DESCRIPTION ----------------- ---------- ----------- runProgramInGuest Path to vmx file Run a program in Guest OS [-noWait] [-activeWindow] [-interactive] Complete-Path-To-Program [Program arguments] fileExistsInGuest Path to vmx file Check if a file exists in Guest OS Path to file in guest directoryExistsInGuest Path to vmx file Check if a directory exists in Guest OS Path to directory in guest setSharedFolderState Path to vmx file Modify a Host-Guest shared folder Share name Host path writable | readonly addSharedFolder Path to vmx file Add a Host-Guest shared folder Share name New host path removeSharedFolder Path to vmx file Remove a Host-Guest shared folder Share name enableSharedFolders Path to vmx file Enable shared folders in Guest [runtime] disableSharedFolders Path to vmx file Disable shared folders in Guest [runtime] listProcessesInGuest Path to vmx file List running processes in Guest OS killProcessInGuest Path to vmx file Kill a process in Guest OS process id runScriptInGuest Path to vmx file Run a script in Guest OS [-noWait] [-activeWindow] [-interactive] Interpreter path Script text deleteFileInGuest Path to vmx file Delete a file in Guest OS Path in guest createDirectoryInGuest Path to vmx file Create a directory in Guest OS Directory path in guest deleteDirectoryInGuest Path to vmx file Delete a directory in Guest OS Directory path in guest CreateTempfileInGuest Path to vmx file Create a temporary file in Guest OS listDirectoryInGuest Path to vmx file List a directory in Guest OS Directory path in guest CopyFileFromHostToGuest Path to vmx file Copy a file from host OS to guest OS Path on host Path in guest CopyFileFromGuestToHost Path to vmx file Copy a file from guest OS to host OS Path in guest Path on host renameFileInGuest Path to vmx file Rename a file in Guest OS Original name New name captureScreen Path to vmx file Capture the screen of the VM to a local file Path on host writeVariable Path to vmx file Write a variable in the VM state [runtimeConfig|guestEnv|guestVar] variable name variable value readVariable Path to vmx file Read a variable in the VM state [runtimeConfig|guestEnv|guestVar] variable name getGuestIPAddress Path to vmx file Gets the IP address of the guest [-wait] GENERAL COMMANDS PARAMETERS DESCRIPTION ---------------- ---------- ----------- list List all running VMs upgradevm Path to vmx file Upgrade VM file format, virtual hw installTools Path to vmx file Install Tools in Guest checkToolsState Path to vmx file Check the current Tools state register Path to vmx file Register a VM unregister Path to vmx file Unregister a VM listRegisteredVM List registered VMs deleteVM Path to vmx file Delete a VM clone Path to vmx file Create a copy of the VM Path to destination vmx file full|linked [-snapshot=Snapshot Name] [-cloneName=Name] Examples: Starting a virtual machine with Workstation on a Windows host vmrun -T ws start "c:\my VMs\myVM.vmx" Stopping a virtual machine on an ESX host vmrun -T esx -h https://myHost.com/sdk -u hostUser -p hostPassword stop "[storage1] vm/myVM.vmx" Running a program in a virtual machine with Workstation on a Windows host with Windows guest vmrun -T ws -gu guestUser -gp guestPassword runProgramInGuest "c:\my VMs\myVM.vmx" "c:\Program Files\myProgram.exe" Running a program in a virtual machine with Server on a Linux host with Linux guest vmrun -T server -h https://myHost.com:8333/sdk -u hostUser -p hostPassword -gu guestUser -gp guestPassword runProgramInGuest "[standard] vm/myVM.vmx" /usr/bin/X11/xclock -display :0 Creating a snapshot of a virtual machine with Workstation on a Windows host vmrun -T ws snapshot "c:\my VMs\myVM.vmx" mySnapshot Reverting to a snapshot with Workstation on a Windows host vmrun -T ws revertToSnapshot "c:\my VMs\myVM.vmx" mySnapshot Deleting a snapshot with Workstation on a Windows host vmrun -T ws deleteSnapshot "c:\my VMs\myVM.vmx" mySnapshot Enabling Shared Folders with Workstation on a Windows host vmrun -T ws enableSharedFolders "c:\my VMs\myVM.vmx" EPP:/vmware #
1
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
EPP:/vmware # vmrun
 
vmrun version 1.15.0 build-2985596
 
Usage: vmrun [AUTHENTICATION-FLAGS] COMMAND [PARAMETERS]
 
 
 
AUTHENTICATION-FLAGS
--------------------
These must appear before the command and any command parameters.
 
   -h <hostName>  (not needed for Workstation)
   -P <hostPort>  (not needed for Workstation)
   -T <hostType> (ws|server|server1|fusion|esx|vc|player)
     for example, use '-T server' for Server 2.0
                  use '-T server1' for Server 1.0
                  use '-T ws' for VMware Workstation
                  use '-T ws-shared' for VMware Workstation (shared mode)
                  use '-T esx' for VMware ESX
                  use '-T vc' for VMware vCenter Server
   -u <userName in host OS>  (not needed for Workstation)
   -p <password in host OS>  (not needed for Workstation)
   -vp <password for encrypted virtual machine>
   -gu <userName in guest OS>
   -gp <password in guest OS>
 
 
 
POWER COMMANDS           PARAMETERS           DESCRIPTION
--------------           ----------           -----------
start                    Path to vmx file     Start a VM or Team
                         [gui|nogui]
 
stop                     Path to vmx file     Stop a VM or Team
                         [hard|soft]
 
reset                    Path to vmx file     Reset a VM or Team
                         [hard|soft]
 
suspend                  Path to vmx file     Suspend a VM or Team
                         [hard|soft]
 
pause                    Path to vmx file     Pause a VM
 
unpause                  Path to vmx file     Unpause a VM
 
 
 
SNAPSHOT COMMANDS        PARAMETERS           DESCRIPTION
-----------------        ----------           -----------
listSnapshots            Path to vmx file     List all snapshots in a VM
                         [showTree]
 
snapshot                 Path to vmx file     Create a snapshot of a VM
                         Snapshot name
 
deleteSnapshot           Path to vmx file     Remove a snapshot from a VM
                         Snapshot name
                         [andDeleteChildren]
 
revertToSnapshot         Path to vmx file     Set VM state to a snapshot
                         Snapshot name
 
 
 
GUEST OS COMMANDS        PARAMETERS           DESCRIPTION
-----------------        ----------           -----------
runProgramInGuest        Path to vmx file     Run a program in Guest OS
                         [-noWait]
                         [-activeWindow]
                         [-interactive]
                         Complete-Path-To-Program
                         [Program arguments]
 
fileExistsInGuest        Path to vmx file     Check if a file exists in Guest OS
                         Path to file in guest
 
directoryExistsInGuest   Path to vmx file     Check if a directory exists in Guest OS
                         Path to directory in guest
 
setSharedFolderState     Path to vmx file     Modify a Host-Guest shared folder
                         Share name
                         Host path
                         writable | readonly
 
addSharedFolder          Path to vmx file     Add a Host-Guest shared folder
                         Share name
                         New host path
 
removeSharedFolder       Path to vmx file     Remove a Host-Guest shared folder
                         Share name
 
enableSharedFolders      Path to vmx file     Enable shared folders in Guest
                         [runtime]
 
disableSharedFolders     Path to vmx file     Disable shared folders in Guest
                         [runtime]
 
listProcessesInGuest     Path to vmx file     List running processes in Guest OS
 
killProcessInGuest       Path to vmx file     Kill a process in Guest OS
                         process id
 
runScriptInGuest         Path to vmx file     Run a script in Guest OS
                         [-noWait]
                         [-activeWindow]
                         [-interactive]
                         Interpreter path
                         Script text
 
deleteFileInGuest        Path to vmx file     Delete a file in Guest OS
Path in guest            
 
createDirectoryInGuest   Path to vmx file     Create a directory in Guest OS
Directory path in guest  
 
deleteDirectoryInGuest   Path to vmx file     Delete a directory in Guest OS
Directory path in guest  
 
CreateTempfileInGuest    Path to vmx file     Create a temporary file in Guest OS
 
listDirectoryInGuest     Path to vmx file     List a directory in Guest OS
                         Directory path in guest
 
CopyFileFromHostToGuest  Path to vmx file     Copy a file from host OS to guest OS
Path on host             Path in guest
                        
 
CopyFileFromGuestToHost  Path to vmx file     Copy a file from guest OS to host OS
Path in guest            Path on host
                        
 
renameFileInGuest        Path to vmx file     Rename a file in Guest OS
                         Original name
                         New name
 
captureScreen            Path to vmx file     Capture the screen of the VM to a local file
Path on host            
 
writeVariable            Path to vmx file     Write a variable in the VM state
                         [runtimeConfig|guestEnv|guestVar]
                         variable name
                         variable value
 
readVariable             Path to vmx file     Read a variable in the VM state
                         [runtimeConfig|guestEnv|guestVar]
                         variable name
 
getGuestIPAddress        Path to vmx file     Gets the IP address of the guest
                         [-wait]
 
 
 
GENERAL COMMANDS         PARAMETERS           DESCRIPTION
----------------         ----------           -----------
list                                          List all running VMs
 
upgradevm                Path to vmx file     Upgrade VM file format, virtual hw
 
installTools             Path to vmx file     Install Tools in Guest
 
checkToolsState          Path to vmx file     Check the current Tools state
 
register                 Path to vmx file     Register a VM
 
unregister               Path to vmx file     Unregister a VM
 
listRegisteredVM                              List registered VMs
 
deleteVM                 Path to vmx file     Delete a VM
 
clone                    Path to vmx file     Create a copy of the VM
                         Path to destination vmx file
                         full|linked
                         [-snapshot=Snapshot Name]
                         [-cloneName=Name]
 
 
 
 
Examples:
 
 
Starting a virtual machine with Workstation on a Windows host
   vmrun -T ws start "c:\my VMs\myVM.vmx"
 
 
Stopping a virtual machine on an ESX host
   vmrun -T esx -h https://myHost.com/sdk -u hostUser -p hostPassword stop "[storage1] vm/myVM.vmx"
 
 
Running a program in a virtual machine with Workstation on a Windows host with Windows guest
   vmrun -T ws -gu guestUser -gp guestPassword runProgramInGuest "c:\my VMs\myVM.vmx" "c:\Program Files\myProgram.exe"
 
 
Running a program in a virtual machine with Server on a Linux host with Linux guest
   vmrun -T server -h https://myHost.com:8333/sdk -u hostUser -p hostPassword -gu guestUser -gp guestPassword runProgramInGuest "[standard] vm/myVM.vmx" /usr/bin/X11/xclock -display :0
 
 
Creating a snapshot of a virtual machine with Workstation on a Windows host
   vmrun -T ws snapshot "c:\my VMs\myVM.vmx" mySnapshot
 
 
Reverting to a snapshot with Workstation on a Windows host
   vmrun -T ws revertToSnapshot "c:\my VMs\myVM.vmx" mySnapshot
 
 
Deleting a snapshot with Workstation on a Windows host
   vmrun -T ws deleteSnapshot "c:\my VMs\myVM.vmx" mySnapshot
 
 
Enabling Shared Folders with Workstation on a Windows host
   vmrun -T ws enableSharedFolders "c:\my VMs\myVM.vmx"
EPP:/vmware #

 

 

 

 

 

 

如果您愿意花几块钱请我喝杯茶的话,可以用手机扫描下方的二维码,通过 支付宝 捐赠。我会努力写出更好的文章。 
(捐赠不显示捐赠者的个人信息,如需要,请注明您的联系方式) 
Thank you for your kindly donation!!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值