作者遇到伺服器斷電後虛拟機需要手動去啟動的問題,通過網上資料查詢,發現vmrun指令行能滿足虛拟機在無人操作下所有服務正常操作,本文主要講述通過vm指令行如何啟動、挂起、關閉、重新開機、運作虛拟機裡面的程式等,同時這些指令均支援遠端伺服器。可在大量伺服器叢集下發揮重要的作用。
很多人都找不到vmrun指令如何使用,即使你安裝了vmware workstation,vmrun也不會直接執行,vmrun為vmware workstation自帶的虛拟機指令行操作,vmrun在vmware workstation的安裝目錄下,可通過右鍵選擇vmware workstation啟動快捷方式,右鍵檢視檔案所在路徑,找到vmrun.exe,通過cmd執行vmrun相關指令。如果你想要cmd支援vmrun,可以将vmrun.exe添加到環境變量path中。
一、vmrum基本指令
# vmrun -T ws start "/opt/VMware/win2k8r2.vmx" nogui啟動無圖形界面虛拟機 (-T 是區分主控端的類型,ws|server|server1|fusion|esx|vc|player,可能比較常用的是ws、esx和player,不過我沒有加-T在Workstation也能正常運作, 可能esx和server就需要了)
# vmrun start "/opt/VMware/win2k8r2.vmx" gui啟動帶圖形界面虛拟機
# vmrun stop "/opt/VMware/win2k8r2.vmx"hard | soft強制關閉虛拟機(相當于直接關電源) | 正常關閉虛拟機
# vmrun reset "/opt/VMware/win2k8r2.vmx" hard | soft冷重新開機虛拟機 | 熱重新開機虛拟機
# vmrun suspend "/opt/VMware/win2k8r2.vmx" hard | soft挂起虛拟機(可能相當于休眠)
# vmrun pause "/opt/VMware/win2k8r2.vmx"暫停虛拟機
# vmrun unpause "/opt/VMware/win2k8r2.vmx"停止暫停虛拟機
# vmrun list 列出正在運作的虛拟機
# ps aux | grep vmx 另一種檢視正在運作虛拟機的方法
# vmrun -T ws snapshot "/opt/VMware/win2k8r2.vmx" snapshotName建立一個快照
# vmrun -T ws reverToSnapshot "/opt/VMware/win2k8r2.vmx" snapshotName 從一個快照中恢複虛拟機
# vmrun -T ws listSnapshots "/opt/VMware/win2k8r2.vmx"列出虛拟機快照數量及名稱
# vmrun -T ws deleteSnapshot "/opt/VMware/win2k8r2.vmx" snapshotName 删除一個快照
其它指令可通過vmrun -help檢視
二、Examples:
在實體機啟動一個虛拟機
vmrun -T ws start "c:\my VMs\myVM.vmx"
在實體機關閉一個虛拟機
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
在實體機執行一個虛拟機裡面的程式,注意,guestUser和guestPassword分别為虛拟機使用者名和密碼
vmrun -T ws -gu guestUser -gp guestPassword runProgramInGuest "c:\my VMs\myVM.vmx" "c:\Program Files\myProgram.exe"
在實體機執行一個遠端虛拟機裡面的程式,注意,guestUser和guestPassword分别為虛拟機使用者名和密碼
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
建立虛拟機快照
vmrun -T ws snapshot "c:\my VMs\myVM.vmx" mySnapshot
恢複快照
vmrun -T ws revertToSnapshot "c:\my VMs\myVM.vmx" mySnapshot
删除快照
vmrun -T ws deleteSnapshot "c:\my VMs\myVM.vmx" mySnapshot
啟用共享檔案夾
vmrun -T ws enableSharedFolders "c:\my VMs\myVM.vmx"
三、示例代碼:
@Rem 随實體機的開機開機
@Rem 下面的指令行組成:
@Rem 第一個參數為vmware workstation vmrun所在路徑,可通過右鍵選擇vmware workstation啟動快捷方式,右鍵檢視檔案所在路徑
@Rem 第二個參數start為啟動關鍵字,其它關鍵字有stop、reset、suspend、pause、unpause等,vmware workstation提供了很多的指令,詳情可通過C:\Program Files (x86)\VMware\VMware Workstation\vmrun -help方式進行檢視
@Rem 第三個參數表示已建好的虛拟機vmx所在的路徑
@Rem 第四個參數nogui參數表示在背景運作虛拟機
@Rem 啟動虛拟機,如果有多個虛拟機,重複下面的指令即可
"C:\Program Files (x86)\VMware\VMware Workstation\vmrun" start "G:\VMWare\Windows 10 x64\Windows 10 x64.vmx" nogui
@Rem 運作虛拟機中的一個程式
"C:\Program Files (x86)\VMware\VMware Workstation\vmrun" -T ws -gu administrator -gp passwordforguest runProgramInGuest "G:\VMWare\Windows 10 x64\Windows 10 x64.vmx" "C:\Users\wangxch\Desktop\WebStorm-10.0.5.exe"
四、開機自啟動,關機自動挂起虛拟機
步驟一:執行“gpedit.msc”,逐級打開“本地計算機政策”-->“計算機配置”-->“Windows設定”-->“腳本”,在視窗右欄中點選“關機”。
步驟二:把需要執行的關機或挂起指令寫入一個 .bat 批處理程式中,添加進去。
五、參考資料
http://blog.csdn.net/devper/article/details/54089342
http://blog.csdn.net/w616589292/article/details/44566127