【问题标题】:jboss-cli : How do I read one specific system property using jboss-cli?jboss-cli:如何使用 jboss-cli 读取一个特定的系统属性?
【发布时间】:2017-08-24 12:35:01
【问题描述】:

我是 jboss-cli 的新手,正在学习“jboss-cli recipes”。

问题

我如何使用 jboss-cli 读取一个特定属性?例如。

  • jboss.home.dir(例如“-Djboss.home.dir=/path/to/my/jboss”)
  • Xmx ("-Xmx=4G")

上下文

“CLI 食谱”文档有这个有用的示例来获取所有系统属性。然而它的“太多信息”。我想编写读取一个特定属性的脚本。

https://docs.jboss.org/author/display/WFLY10/CLI+Recipes#CLIRecipes-

JBoss AS7+ 中所有系统属性的概览,包括 OS 系统 使用 -D、-P 或在命令行上指定的属性和属性 --properties 参数。

Standalone
[standalone@IP_ADDRESS:9999 /] /core-service=platform-mbean/type=runtime:read-attribute(name=system-properties)

提前致谢

【问题讨论】:

    标签: jboss wildfly jboss-cli


    【解决方案1】:

    您可以像这样使用 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/"
    

    它有点难看,如果值是“值”=>“值=”之类的东西或可怕的东西,就会出现一些令人讨厌的边缘情况。 一般来说,这工作正常。

    将 sed 命令更改为更具体一点以解决该问题。

    【讨论】:

      【解决方案2】:

      你可以做一个:

      :resolve-expression(表达式=${jboss.home.dir})

      【讨论】:

        【解决方案3】:

        此链接为我指出了答案:我可以使用 groovy 脚本来获取值。据我所知,“jboss-cli 命令行”并没有提供这种灵活性。

        https://developer.jboss.org/wiki/AdvancedCLIScriptingWithGroovyRhinoJythonEtc

        解决方案

        这是 jboss home 的解决方案。

        [对于内存,您可以从“/core-service=platform-mbean/type=memory/:read-attribute(name=heap-memory-usage)”获取结果

        重击

        #!/bin/sh
        # Note: must set jbbin to 'jboss home /bin'
        groovy -cp $jbbin/client/jboss-cli-client.jar readJbossHome.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()  
        

        【讨论】:

          【解决方案4】:

          您也可以通过 Wildfly 管理休息呼叫来完成。

          • http://localhost:9990/management
          • 发布
          • 标头 = 内容类型:应用程序/json
          • 身体 = { "操作":"解析表达式", "表达式":"${jboss.home.dir}" }

          【讨论】:

            【解决方案5】:

            通过更新的 Teiid DOC,我发现了一些有用的信息,我认为这可能有助于与遇到类似用例的人分享

            https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/6.3/html/administration_and_configuration_guide/configure_system_properties_using_the_management_cli

            帮助使用 jboss-cli 添加、删除和读取系统属性

            【讨论】:

              猜你喜欢
              • 2019-09-14
              • 2020-09-23
              • 1970-01-01
              • 2018-02-07
              • 2020-06-28
              • 2017-12-26
              • 2019-10-09
              • 2019-04-03
              • 2020-10-08
              相关资源
              最近更新 更多