是否可以使用Java解析virt-top命令的结果?
我做的第一件事是在java中运行virt-top命令。
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("virt-top -n 5");但我在控制台中看不到任何输出。我使用eclipse作为我的编辑器。我的目标是获得客户机的CPU和内存使用情况,所以我使用virt-top,并计划解析结果。
任何帮助都将不胜感激。谢谢!
更新:
我使用了我在互联网上找到的代码。我能够使用命令"virt-top --stream -n 2“获得所需的输出。但我现在的问题是解析结果。
1次迭代的示例如下所示,
"virt-top time 04:25:54 Host localhost.localdomain x86_64 4/4CPU 2301MHz 7465MB
ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME
1 R 0 0 0 0 0.0 0.0 0:06.42 CentOS"我只需要获取%CPU和%MEM。
发布于 2014-08-14 21:29:36
使用创建的进程的inputstream读取生成的输出。
pr.getInputStream()请参阅http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html
发布于 2014-08-14 21:33:10
通常,您需要通过Process.getInputStream()使用Process对象的输出
另外,您可能应该通过Process.getErrorStream()使用和显示stderr。
最后,如果virt-top是基于诅咒的,那么您可能希望禁用ctl字符。这是通过使用带有-b开关的top命令实现的。
https://stackoverflow.com/questions/25309101
复制相似问题