通过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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐