通过qemu-agent 可以在宿主机通过命令在虚拟机内执行命名
qemu-agent-command 命令是异步的,执行后命令会返回一个pid,然后通过这个pid轮询的去查询执行的输出结果
如果是正常的结果通过 result.out-data输出,如果是异常通过return.err-data 输出
VMID=f9097a59-973f-ebcf-caf4-f7e1e518c379
QGQIA=$(virsh qemu-agent-command ${VMID} '{"execute": "guest-exec", "arguments": {"path": "/bin/sh", "capture-output": true, "arg": ["-c", "ps aux"]}}' | jq .return.pid)
virsh qemu-agent-command ${VMID} '{"execute": "guest-exec-status", "arguments": {"pid": '${QGQIA}'}}'| jq -r '.return."out-data"' | base64 -d
引用
https://stackoverflow.com/questions/37344329/jq-not-working-on-tag-name-with-dashes-and-numbers
https://stackoverflow.com/questions/44656515/how-to-remove-double-quotes-in-jq-output-for-parsing-json-files-in-bash