每次启动与关闭虚拟机集群时,总要点来点去,输入命令做重复性工作,集群数量一多,总是不免很烦,因此想到借助脚本将开关机实现自动化。
1.批量启动
Vmware提供命令行的启动方式,在命令行中运行帮助显示如下。使用 vmware.exe -x xxx/xx.vmx的格式即可打开指定虚拟机。
在windows bat中编写脚本,脚本内容如下:
@echo off
setlocal
chcp 65001
rem 设置 VMware 可执行文件的路径
set "VMWARE_PATH=D:\VM\vmware.exe"
rem 设置虚拟机目录的路径
set "VM_DIR=D:\Software\vmware"
rem 定义要启动的虚拟机列表
set VMS="hadoop102\hadoop102.vmx" "hadoop103\hadoop103.vmx" "hadoop104\hadoop104.vmx"
rem 启动每个虚拟机
for %%v in (%VMS%) do (
echo 尝试开启虚拟机 %%v...
start "" %VMWARE_PATH% -x "%VM_DIR%\%%~v"
if %errorlevel%==0 (
echo 成功开启虚拟机 %%v。
) else (
echo 开启虚拟机 %%v 失败。错误: %errorlevel%
)
)
endlocal
批量关机脚本:
@echo off
setlocal
chcp 65001
rem 设置 VMware 可执行文件的路径
set "VMWARE_PATH=D:\VM\vmrun.exe"
rem 设置虚拟机目录的路径
set "VM_DIR=D:\Software\vmware"
rem 定义要关闭的虚拟机列表
set VMS="hadoop102\hadoop102.vmx" "hadoop103\hadoop103.vmx" "hadoop104\hadoop104.vmx"
rem 关闭每个虚拟机
for %%v in (%VMS%) do (
echo 尝试关闭虚拟机 %%v...
%VMWARE_PATH% stop "%VM_DIR%\%%~v" soft
if %errorlevel%==0 (
echo 成功关闭虚拟机 %%v。
) else (
echo 关闭虚拟机 %%v 失败。错误: %errorlevel%
)
)
endlocal
参考