RabbitMQ:验证rabbitmq的版本
Posted
技术标签:
【中文标题】RabbitMQ:验证rabbitmq的版本【英文标题】:RabbitMQ: Verify version of rabbitmq 【发布时间】:2011-11-27 10:34:40 【问题描述】:如何验证服务器上运行的是哪个版本的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
【讨论】:
以上是关于RabbitMQ:验证rabbitmq的版本的主要内容,如果未能解决你的问题,请参考以下文章