【发布时间】:2011-11-27 10:34:40
【问题描述】:
如何验证服务器上运行的是哪个版本的rabbitmq?
是否有命令验证rabbitmq是否正在运行?
【问题讨论】:
标签: rabbitmq
如何验证服务器上运行的是哪个版本的rabbitmq?
是否有命令验证rabbitmq是否正在运行?
【问题讨论】:
标签: rabbitmq
sudo rabbitmqctl 状态
然后寻找看起来像这样的线:
{兔子,"RabbitMQ","2.6.1"},
【讨论】:
正如 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
【讨论】:
您可以简单地从命令行执行:
sudo rabbitmqctl status | grep rabbit
【讨论】:
3.8.4 开始,更好的搜索字符串是 sudo rabbitmqctl status | grep -i "version"。
如果rabbitimq无法启动,我发现确定版本的唯一方法是通过安装程序系统。
Debian/Ubuntu 示例:
dpkg -s rabbitmq-server | grep Version
【讨论】:
yum list rabbitmq-server 用于 Rhel/Centos/Fedora
由于我希望在 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";
}
【讨论】:
如果您使用的是“管理”(web)插件,RabbitMQ 版本可能会出现在每个网页的右上角,以及 Erlang 运行时的版本。
【讨论】:
使用.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
【讨论】:
登录管理界面,在右上角可以找到版本。也可以使用以下命令查找版本
# sudo bash
# rabbitmqctl status | grep rabbit
【讨论】:
在 debian 系统上,您可以运行:
dpkg-query --showformat='${Version}' --show rabbitmq-server
【讨论】:
我使用以下命令将输出修剪为版本,
rabbitmqctl status | grep "{rabbit,\"RabbitMQ\""
输出:
{rabbit,"RabbitMQ","3.7.3"},
【讨论】:
如果你无法访问 rabbitmqctl 或者 rabbitmq-server 没有运行,在 linux 上做:
ls /usr/lib/rabbitmq/lib/
我明白了:
rabbitmq_server-3.5.6
【讨论】: