You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求清空所有Vhost下RabbitMQ队列消息的PowerShell脚本

PowerShell脚本:清空所有RabbitMQ Vhost下的队列消息

以下是针对RabbitMQ 3.12.10版本的PowerShell脚本,仅清空所有Vhost下所有队列的消息,不会删除队列或Vhost:

# 若rabbitmqctl不在系统PATH中,需指定完整路径,例如:
# $rabbitmqCtlPath = "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.12.10\sbin\rabbitmqctl.bat"
$rabbitmqCtlPath = "rabbitmqctl"

# 获取所有Vhost列表
$vhosts = & $rabbitmqCtlPath list_vhosts name --formatter=csv | Select-Object -Skip 1 | ForEach-Object { $_.Trim() }

foreach ($vhost in $vhosts) {
    Write-Host "正在处理Vhost: $vhost"
    
    # 获取当前Vhost下的所有队列名称
    $queues = & $rabbitmqCtlPath list_queues name -p $vhost --formatter=csv | Select-Object -Skip 1 | ForEach-Object { $_.Trim() }
    
    foreach ($queue in $queues) {
        Write-Host "清空队列: $queue (Vhost: $vhost)"
        & $rabbitmqCtlPath purge_queue $queue -p $vhost
    }
}

Write-Host "所有队列消息清空完成"

使用说明

  • 路径配置:如果rabbitmqctl不在系统环境变量PATH中,需要修改$rabbitmqCtlPath为你的RabbitMQ安装目录下sbin文件夹中的rabbitmqctl.bat(Windows)或rabbitmqctl(Linux/macOS)的完整路径。
  • 权限要求:执行脚本的用户需要拥有RabbitMQ的管理员权限,能访问所有Vhost和队列。
  • 确认操作:脚本执行前建议先在测试环境验证,避免误清空生产环境数据。
  • 格式处理:使用--formatter=csv是为了更稳定地解析输出,避免因默认格式的空格问题导致获取的Vhost或队列名称出错。

内容的提问来源于stack exchange,提问作者FluffyBike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 21:04:54