我是jboss-cli的新手并且正在使用' jboss-cli食谱'。
问题
如何使用jboss-cli阅读一个特定属性?例如。
上下文
" CLI Recipes"文档有一个有用的示例来获取所有系统属性。然而,其过多的信息'。我想脚本阅读一个特定的属性。
https://docs.jboss.org/author/display/WFLY10/CLI+Recipes#CLIRecipes-
JBoss AS7 +中包括OS系统的所有系统属性概述 使用-D,-P或命令行在命令行上指定的属性和属性 --properties arguments。
Standalone
[standalone@IP_ADDRESS:9999 /] /core-service=platform-mbean/type=runtime:read-attribute(name=system-properties)
提前致谢
答案 0 :(得分:0)
这个链接指向了我的答案:我可以使用groovy脚本来获取值。从我看来,“jboss-cli命令行”并没有提供这种灵活性。
https://developer.jboss.org/wiki/AdvancedCLIScriptingWithGroovyRhinoJythonEtc
<强>解决方案强>
这是jboss home的解决方案。
[对于内存,你可以从“/ core-service = platform-mbean / type = memory /:read-attribute(name = heap-memory-usage)”获得结果“
<强>的bash 强>
#!/bin/sh
# Note: must set jbbin to 'jboss home /bin'
groovy -cp $jbbin/client/jboss-cli-client.jar readJbossHome.groovy
<强> Groovy的强> 注意:这是“快速而肮脏的”。
import org.jboss.as.cli.scriptsupport.*
cli = CLI.newInstance()
cli.connect()
// Define properties
myParentProp="system-properties"
myProp="jboss.home.dir"
// Retrieve and pluck values
result = cli.cmd("/core-service=platform-mbean/type=runtime:read-resource(recursive=true,include-runtime=false)")
myResult = result.getResponse().get("result")
myParentVal = myResult.get(myParentProp)
myVal = myParentVal.get(myProp)
// Print out results
println "Property detail ${myProp} is ${myVal}"
cli.disconnect()
答案 1 :(得分:0)
你可以做:
:解析表达式(表达式= $ {jboss.home.dir})
答案 2 :(得分:0)
您也可以通过Wildfly管理的休息电话来做到这一点。
答案 3 :(得分:0)
您可以像这样使用cli:
$JBOSS_HOME/bin/jboss-cli.sh -c --command=/system-property=MY_PROPERTY:read-resource
您将获得如下输出:
$JBOSS_HOME/bin/jboss-cli.sh -c --command=/system-property=MY_PROPERTY:read-resource
{
"outcome" => "success",
"result" => {"value" => "4.0"}
}
您可以通过以下方式将其提取:
<cli command> | grep "{\"value\"" | sed "s/.*value\" => \"\([^\"]*\)\".*/\1/"
有点丑陋,如果值是“ value” =>“ value =“或可怕的东西,那么在某些情况下会很讨厌。 一般来说,这可以。
将sed命令更改为更具体一些以解决该问题。