VMware Workstation: приостановить работу всех виртуальных машин с помощью vmrun
Я знаю, что могу приостановить данную виртуальную машину VMware в командной строке с помощью:
vmrun suspend /path/to/virtual_machine_file.vmx
Есть ли способ приостановить все виртуальные машины одновременно, используя vmrun
? Что-то вроде vmrun suspend all
?
3 ответа
Ну, я надеялся на легкий ответ, но так как его не было, я написал свой собственный сценарий. Надеюсь это кому-нибудь пригодится! Это в рубине - когда запустить, он позвонит vmrun list
чтобы получить список всех запущенных виртуальных машин, удалите первую строку ("Всего запущенных виртуальных машин: x") и вызовите vmrun suspend
на всех остальных линиях.
#!/usr/bin/ruby
VMRUN='/usr/bin/vmrun'
vms = []
open("|#{VMRUN} list") do |p| vms = p.readlines.map {|l| l.chomp } end
vms.shift
vms.each do |vmxfile|
print "Suspending #{vmxfile}"
system("#{VMRUN} suspend #{vmxfile}")
end
Версия ответа для пакетного файла Windows (3-й пост): http://communities.vmware.com/thread/92951?tstart=0
Я не воспроизводил решение напрямую, потому что оно заимствовало код у оригинальных авторов в приведенной выше ссылке, и они заслуживают их доверия. Я просто взял то, что они сделали, и адаптировал его так, чтобы просто приостановить все работающие виртуальные машины (оригинальный сценарий приостанавливается, выполняет резервное копирование и возобновляет работу).
Мне просто нужен был способ сделать это, и совет для меня был vmrun. Мое простое решение для командной строки (из каталога VMware):
for /f "tokens=* skip=1" %a in ('vmrun list') do vmrun suspend "%a"
Если в файле bat:
for /f "tokens=* skip=1" %%a in ('vmrun list') do vmrun suspend "%%a"