VMware Workstation: suspenda todas as máquinas virtuais com vmrun

3

Eu sei que posso suspender uma determinada máquina virtual VMware na linha de comando com:

vmrun suspend /path/to/virtual_machine_file.vmx

Existe alguma maneira de suspender todas as máquinas virtuais de uma só vez usando vmrun ? Algo como vmrun suspend all ?

    
por Josh 12.03.2010 / 22:01

3 respostas

2

Bem, eu estava esperando por uma resposta fácil, mas desde que não havia uma, eu escrevi meu próprio roteiro. Espero que isso seja útil para alguém! É em ruby - quando executado, ele chamará vmrun list para obter uma lista de todas as VMs em execução, retirar a primeira linha ("Total de VMs em execução: x") e chamar vmrun suspend em todas as linhas restantes.

#!/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
    
por 13.03.2010 / 01:17
2

Versão do arquivo em lotes do Windows da resposta aqui (3ª postagem): link

Eu não reproduzi a solução diretamente devido ao fato de ela tomar emprestado o código de autores originais no link acima e eles merecem seu crédito. Eu apenas peguei o que eles fizeram e adaptei-o para apenas suspender todas as VMs em execução (o script original suspende, faz o backup e continua).

    
por 16.04.2012 / 14:38
1

Eu só precisava de uma maneira de fazer isso, e a dica para mim aqui era vmrun. Minha solução de linha de comando simples (do diretório VMware):

for /f "tokens=* skip=1" %a in ('vmrun list') do vmrun suspend "%a"

Se estiver em um arquivo bat:

for /f "tokens=* skip=1" %%a in ('vmrun list') do vmrun suspend "%%a"

    
por 27.09.2016 / 08:51