Executa comandos em um convidado do Ubuntu na VM do VirtualBox a partir do host do Windows

3

Estou trabalhando em algum código, e tenho uma ideia que deve funcionar, mas não tenho ideia de como fazer isso funcionar. Estou usando o Wolfram Mathematica em minha máquina host do Windows para executar algum código, mas tenho que exportar um arquivo para um programa baseado em Linux que eu executo em uma VM do Ubuntu Virtualbox. A partir de agora, quando o arquivo é exportado, eu tenho que ir e clicar nele para fazê-lo funcionar.

Embora não seja muito trabalho, gostaria de automatizá-lo para que o Mathematica possa chamar meu outro programa e não precise clicar em nada. Eu fiz o meu melhor para procurar ajuda on-line, mas honestamente, isso está acima de tudo na minha cabeça (sou engenheiro civil, não sou muito experiente em computação).

Aqui está o que eu tenho até agora:

C:\Program Files\Oracle\VirtualBox\VBoxManage guestcontrol "Ubuntu" execute --username (myname) --password (mypassword) --verbose --wait-exit --wait-stdout --image "/home/(myname)/Desktop/oof2-2.1.11/oof2"

Ele me diz VERR_ACCESS_DENIED e fecha a sessão do convidado.

Quando eu executo meu programa no Ubuntu, tudo o que tenho que fazer é digitar oof2 na janela do terminal e ele inicia, mas como faço para fazer isso através da linha de comando? Li o manual de controle de convidados do VirtualBox e não vi nada que eu pode entender isso se aplica diretamente. Qualquer ajuda é apreciada.

Como nota final, posso executar os exemplos fornecidos no manual de controle de convidados e eles funcionam bem.

    
por Hogy88 29.01.2015 / 23:45

1 resposta

1

Aqui está a ajuda do comando vboxmanage :

 guestcontrol              <uuid|vmname>

                             exec[ute]
                             --image <path to program> --username <name>
                             [--passwordfile <file> | --password <password>]
                             [--domain <domain>] [--verbose] [--timeout <msec>]
                             [--environment "<NAME>=<VALUE> [<NAME>=<VALUE>]"]
                             [--wait-exit] [--wait-stdout] [--wait-stderr]
                             [--dos2unix] [--unix2dos]
                             [-- [<argument1>] ... [<argumentN>]]

Portanto, o comando completo deve ser:

C:\Program Files\Oracle\VirtualBox\VBoxManage guestcontrol "Ubuntu" execute --username (myname) --password (mypassword) --verbose --wait-exit --wait-stdout --image "/usr/local/bin/oof2" -- --text

Observe o -- extra. Tudo depois disso será passado como argumentos para o processo.

Configurando o SSH

  1. Instale o PuTTY na máquina host. ( Link direto para o instalador)
  2. Abra um terminal na VM e digite ip -4 addr . Procure o seu endereço IP, ele estará ao lado da palavra "inet" na seção "eth0" (provavelmente será 10.0.2.XXX)
  3. Na janela VM, abra o menu "Dispositivo" e selecione "Rede" - > "Configurações de rede". De lá, selecione "Port Forwarding"
  4. Adicione uma regra, Porta do host = 2222, IP do convidado =, Porta do convidado = 22. Clique em OK em todos os diálogos.
  5. Execute putty, use localhost como o nome do host e 2222 como a porta. Clique em "Abrir"

Se isso funcionar e você receber um terminal, agora você pode usar esse comando para executar seu aplicativo:

C:\Program Files (x86)\PuTTY\plink.exe -P 2222 -pw mypassword myname@localhost  "/usr/local/bin/oof2" --text
    
por 30.01.2015 / 02:06