-
Se você tiver configurado um console serial virtual para sua VM, poderá usar o comando
virsh consolepara se conectar a ele.Você terá que usar um script
expectpara fazer o login com nome de usuário e senha, executar seu (s) comando (s), extrair a saída e, em seguida, efetuar logout.Note, no entanto, que
expecté uma linguagem de propósito único e, IMO, não há sentido em aprender / usá-la se você ainda não a conhece. Você está muito melhor colocando o tempo necessário para aprendê-lo a aprender uma linguagem de propósito geral comoperloupython.Isso tem o benefício adicional de que o que você deseja fazer será um LOT mais fácil com o
perl'Expect.pmoupython'pexpectmodule do que comexpectem si. A capacidade deexpectde extrair dados da sessão é bastante limitada e primitiva em comparação com o queperloupythonpode fazer.BTW, você mencionou a API Java de
libvirt- uma pesquisa rápida no google revela que há pelo menos duas implementações diferentes de uma bibliotecaexpect-like para Java. Pode haver mais.Eu não sou um programador Java, nunca usei nenhum desses, não tenho idéia se eles são bons, e não posso recomendar um sobre o outro.
-
Como alternativa, se a VM tiver uma interface de rede com um endereço IP e tiver
sshdinstalado (ou você puder instalá-la), você poderásshna VM, como faria com qualquer outro host. Esta é, de longe, a maneira mais fácil e melhor de fazer o que você quer.