3

Я знаю, что могу приостановить данную виртуальную машину VMware в командной строке с помощью:

vmrun suspend /path/to/virtual_machine_file.vmx

Есть ли способ приостановить все виртуальные машины одновременно с помощью vmrun? Что-то вроде vmrun suspend all?

3 ответа3

2

Ну, я надеялся на легкий ответ, но так как его не было, я написал свой собственный сценарий. Надеюсь это кому-нибудь пригодится! Он находится в ruby - при запуске он вызывает 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
2

Версия ответа для пакетного файла Windows (3-й пост):http://communities.vmware.com/thread/92951?tstart=0

Я не воспроизводил решение напрямую, потому что оно заимствовало код у оригинальных авторов по приведенной выше ссылке, и они заслуживают их доверия. Я просто взял то, что они сделали, и адаптировал его, чтобы просто приостановить все работающие виртуальные машины (оригинальный сценарий приостанавливается, резервное копирование и возобновление).

1

Мне просто нужен был способ сделать это, и совет для меня был 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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .