寻找一种从 KVM 节点导出所有 VM 的好方法,以便在对 KVM 主机进行就地操作系统升级时进行一些备份。
到目前为止,我正在使用一个 hacky bash oneliner 来将所有 VM 转储为 xml 并列出它们的磁盘路径以进行复制:
for vm in $(virsh list --all | egrep -v "ID|---" | awk '{print $2}'); do virsh dumpxml "$vm" > "/root/vm/$vm.xml"; virsh domblklist "$vm" | grep '/' | awk '{print $2}' >> /root/vm/vm_disks.lst; done
这很好用,但是 virsh 只执行“人类”输出 AFAIK,所以我必须在输出中使用 grep/awk 方法,这不是很可靠的 IMO。
有没有什么干净的方法可以在不需要带有 libvirt 的 python 脚本的情况下实现这一点?
此致。