-
Se você tiver configurado um console serial virtual para sua VM, poderá usar o comando
virsh console
para se conectar a ele.Você terá que usar um script
expect
para 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 comoperl
oupython
.Isso tem o benefício adicional de que o que você deseja fazer será um LOT mais fácil com o
perl
'Expect.pm
oupython
'pexpect
module do que comexpect
em si. A capacidade deexpect
de extrair dados da sessão é bastante limitada e primitiva em comparação com o queperl
oupython
pode 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
sshd
instalado (ou você puder instalá-la), você poderássh
na VM, como faria com qualquer outro host. Esta é, de longe, a maneira mais fácil e melhor de fazer o que você quer.