通过脚本修改正在运行的KVM域的xml定义

我如何通过ssh修改虚拟机的xml定义? 我知道我可以通过login到主机并使用以下方式交互地执行此操作:

virsh edit <domain name> 

但是我想使用在远程主机上运行的脚本自动执行此xml修改,然后通过KVM盒上的ssh执行命令。

从我所观察到的是,virsh编辑打开默认的编辑器(在我的情况下)为我编辑文件。 我想以某种方式用另一个文本文件中包含的vm定义覆盖此文件(由virsh编辑命令交互式打开)。

我发现了如何使用以下方式将文本传送到vi的线程:

 cat <file name> | vi - 

但是,这不会在我的情况下工作,

  1. virsh打开默认的编辑器,我无法控制的参数。 (或者至less我不知道如何修改这些参数)
  2. 默认编辑器在不同的KVM盒子上可能不同。

预先感谢帮助。

编辑:只是想澄清,我没有一个选项来closures虚拟机,并重新定义它。 我想修改一个正在运行的域名。

使用virsh dumpxml获取XML,然后使用virsh define来将您的修改replace为域定义。