【问题标题】:RabbitMQ: Verify version of rabbitmqRabbitMQ:验证rabbitmq的版本
【发布时间】:2011-11-27 10:34:40
【问题描述】:

如何验证服务器上运行的是哪个版本的rabbitmq?

是否有命令验证rabbitmq是否正在运行?

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

    sudo rabbitmqctl 状态

    然后寻找看起来像这样的线:

    {兔子,"RabbitMQ","2.6.1"},

    【讨论】:

    • 我在 Archlinux 上得到了这个 - [{rabbit,34362},{rabbitmqctl23794,40359}] 虽然我安装了 rabbitmq 3.1.3-1 :)
    • 如果 rabbitmq 服务停止了呢?它不起作用。如何检索“关闭”rabbitmq 的版本?
    • 在 Windows 中这非常相似。 "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmqctl status" 文件夹名称可能因您的 Rabbit 版本而异。
    【解决方案2】:

    正如 Marek 在本地服务器或远程服务器上所说(使用 amqplib):

    from amqplib import client_0_8 as amqp
    import sys
    
    conn = amqp.Connection(host=sys.argv[1], userid="guest", password="guest", virtual_host="/", insist=False)
    
    for k, v in conn.server_properties.items():
        print k, v
    

    另存为checkVersion.py 并使用python checkVersion.py dev.rabbitmq.com 运行:

    % python checkVersion.py dev.rabbitmq.com
    information Licensed under the MPL.  See http://www.rabbitmq.com/
    product RabbitMQ
    copyright Copyright (C) 2007-2011 VMware, Inc.
    capabilities {}
    platform Erlang/OTP
    version 2.6.0
    

    【讨论】:

    • 这对我有用,但只适用于 Python3,我必须在文件夹 client_0_8(在 Windows 中)下创建 checkVersion.py
    【解决方案3】:

    您可以简单地从命令行执行:

    sudo rabbitmqctl status | grep rabbit
    

    【讨论】:

    • 可能格式已经改变 - 从版本 3.8.4 开始,更好的搜索字符串是 sudo rabbitmqctl status | grep -i "version"
    【解决方案4】:

    如果rabbitimq无法启动,我发现确定版本的唯一方法是通过安装程序系统。

    Debian/Ubuntu 示例:

    dpkg -s rabbitmq-server | grep Version
    

    【讨论】:

    • yum list rabbitmq-server 用于 Rhel/Centos/Fedora
    【解决方案5】:

    由于我希望在 Windows 机器上使用 C# 执行此操作,并且所有当前答案都是针对 *nix,所以我将发布我最终使用的代码:

    public string GetRabbitMqVersion()
    {
        string prefix = "rabbitmq_server-";
        var dirs = System.IO.Directory.EnumerateDirectories(@"C:\Program Files (x86)\RabbitMQ Server", string.Format("{0}*",prefix));
    
        foreach (var dir in dirs)
        {
            //Just grab the text after 'rabbitmq_server-' and return the first item found
            var i = dir.LastIndexOf(prefix);
            return dir.Substring(i+16);
        }
        return "Unknown";
    }
    

    【讨论】:

      【解决方案6】:

      如果您使用的是“管理”(web)插件,RabbitMQ 版本可能会出现在每个网页的右上角,以及 Erlang 运行时的版本。

      【讨论】:

        【解决方案7】:

        使用.NET/C# RabbitMQ Client Library获取RabbitMQ版本:

        using (var connection = connectionFactory.CreateConnection())
        {
            if (connection.ServerProperties.ContainsKey("version"))
                Console.WriteLine("Version={0}",
                    Encoding.UTF8.GetString((byte[])connection.ServerProperties["version"]));
        }
        

        输出:

        版本=3.6.3

        【讨论】:

          【解决方案8】:

          登录管理界面,在右上角可以找到版本。也可以使用以下命令查找版本

          # sudo bash

          # rabbitmqctl status | grep rabbit

          【讨论】:

            【解决方案9】:

            在 debian 系统上,您可以运行:

            dpkg-query --showformat='${Version}' --show rabbitmq-server
            

            【讨论】:

              【解决方案10】:

              我使用以下命令将输出修剪为版本,

              rabbitmqctl status | grep "{rabbit,\"RabbitMQ\""
              

              输出:

                {rabbit,"RabbitMQ","3.7.3"},
              

              【讨论】:

                【解决方案11】:

                如果你无法访问 rabbitmqctl 或者 rabbitmq-server 没有运行,在 linux 上做:

                ls /usr/lib/rabbitmq/lib/
                

                我明白了:

                rabbitmq_server-3.5.6
                

                【讨论】:

                  猜你喜欢
                  • 2020-09-05
                  • 2020-08-07
                  • 2012-05-22
                  • 2013-12-12
                  • 2018-12-19
                  • 2015-04-19
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多