【问题标题】:Marklogic extract DB status from multiple servers?Marklogic 从多个服务器中提取数据库状态?
【发布时间】:2016-09-13 08:28:36
【问题描述】:

我需要创建一个 bash(或 python)脚本,它可以为我提供位于不同服务器上的多个数据库的可用性状态。我发现我可以使用这个 url "http://marklogic:8002/manage/v2/database/$DBNAME/?view=status" 来获取状态。但我有大约 20 个不同的数据库。当您打开此链接时,它会生成一个包含数据库详细信息的 xml。您能否告诉我如何循环所有链接并仅 grep 状态行?或者如果您有任何其他想法,请提出建议

【问题讨论】:

    标签: python database bash marklogic status


    【解决方案1】:

    您可以将 dbnames 保存在一个文件中,然后使用 for 循环。

    for a in `cat dbname.txt`
    do
    status = `wget -qO- "http://marklogic:8002/manage/v2/database/${a}/?view=status"`
    echo $a, $status
    done
    

    【讨论】:

    • 感谢您的快速响应,但是当我尝试在浏览器中打开它时,它每次都要求我输入密码。如何添加用户和密码
    • 这里可以有多个选项,如果密码可以作为参数传递,你应该在url中传递它。如果不允许,您应该尝试使用 wget 发布它
    • 将密码设置为环境变量(非交互式)或在脚本启动时询问一次(交互式)。我不知道 wget,但是对于 cURL,您可以使用 --user--digest 选项来指定摘要身份验证。上面提到的社区 Python API 会为您处理所有这些。
    • 是的,我是通过 curl --anyauth --user user:pass "marklogic:8002/manage/v2/database/${a}/?view=status
    【解决方案2】:

    可能值得研究一下 Github 上的 MarkLogic Python API 项目:

    https://github.com/marklogic/python_api

    HTH!

    【讨论】:

      【解决方案3】:

      是的,我是通过 curl --anyauth --user user:pass "http://marklogic:8002/manage/v2/database/${a}/?view=status

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多