我需要将下面的输出捕获到变量中。 我知道我们可以访问serverRuntime或domainRuntime()树并获取状态。但需要让以下工作。
wls:/owb/serverConfig> state('Server1')
Current state of 'Server1' : RUNNING
我尝试了两种方法:
wls:/owb/serverConfig> print state('Server1')
Current state of 'Server1' : RUNNING
None
wls:/owb/serverConfig> x=state('Server1')
Current state of 'Server1' : RUNNING
wls:/owb/serverConfig> print x
None
答案 0 :(得分:2)
您必须使用服务器运行时mbean的getState()
方法。
您可以通过导航到wlst运行时树或使用查找方法来获取服务器运行时mbean。
示例:
domainRuntime()
slrBean = cmo.lookupServerLifeCycleRuntime('Server1')
status = slrBean.getState()
print 'Status of Managed Server is '+status
另请参阅WLST官方文档中的Getting Runtime Information。
答案 1 :(得分:1)
王殿元和我2011年提出了同样的问题。 以下是解决问题的步骤。 1.使用redirect,stopRedirect命令捕获state命令的输出 2.在搜索功能中使用Python正则表达式来提取所需的服务器输出。
代码段在这里
fileName='/tmp/myserver_state.txt'
redirect(fileName)
state(server_nm,'Server')
stopRedirect()
f = open(fileName)
try:
for line in f.readlines():
if re.search('Current state',line):
status[server_nm]=line
except:
continue
现在,您可以在此块之后应用所需的逻辑。
干杯!! HTH
答案 2 :(得分:0)
这是我正在使用的,并且像魅力一样工作
cd("/ServerRuntimes/ms1")
state=cmo.getState()
print state