arp*_*shi 5 kvm virtual-machine qemu iostat libvirt
是否可以使用 libvirt 或 virsh 在来宾 VM 内为 eg:iostat 执行命令。我想找出来宾 vm 的 IOPS 但使用 libvirt java api 我无法获得 vm 的 IOPS,因此另一种方法将是在来宾虚拟机中执行类似 iostat 的命令并记录读数。
如果您为虚拟机设置了虚拟串行控制台,则可以使用该virsh console
命令连接到它。
您必须使用expect
脚本使用用户名和密码登录,运行命令,提取输出,然后注销。
但请注意,这expect
是一种单一用途的语言,在我看来,如果您还不了解它,那么学习/使用它就没有意义。您最好将学习它所需的时间投入到学习通用语言(如perl
或 )中python
。
这还有一个额外的好处,即使用s或s模块比使用其本身要容易得多。 与或 的功能相比,从会话中提取数据的能力非常有限且原始。perl
Expect.pm
python
pexpect
expect
expect
perl
python
顺便说一句,您提到了libvirt
Java API - 快速谷歌搜索显示至少有两种不同的类似expect
Java 库的实现。可能还有更多。
https://github.com/ronniedong/Expect-for-Java
https://github.com/Alexey1Gavrilov/ExpectIt
我不是 Java 程序员,从未使用过其中任何一个,不知道它们是否有任何好处,并且无法推荐其中一个。
或者,如果虚拟机具有带 IP 地址的网络接口并且已sshd
安装(或者您可以安装),则您ssh
可以像访问任何其他主机一样进入该虚拟机。到目前为止,这是实现您想做的事情的最简单、最好的方法。
归档时间: |
|
查看次数: |
8543 次 |
最近记录: |