MST

星途 面试题库

面试题:消息队列运维自动化脚本之基础脚本编写

假设使用RabbitMQ消息队列,要求编写一个简单的Shell脚本,用于定期检查RabbitMQ服务的运行状态,如果服务未运行则自动重启。请写出该脚本的主要代码逻辑及关键命令。
21.9万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 检查RabbitMQ服务状态的函数
check_rabbitmq_status() {
    rabbitmqctl status &> /dev/null
    return $?
}

# 重启RabbitMQ服务的函数
restart_rabbitmq() {
    systemctl restart rabbitmq-server
}

# 主逻辑
while true; do
    if check_rabbitmq_status; then
        echo "RabbitMQ服务正在运行。"
    else
        echo "RabbitMQ服务未运行,正在尝试重启..."
        restart_rabbitmq
        if check_rabbitmq_status; then
            echo "RabbitMQ服务重启成功。"
        else
            echo "RabbitMQ服务重启失败,请手动检查。"
        fi
    fi
    # 每隔60秒检查一次
    sleep 60
done

关键命令解释:

  • rabbitmqctl status:用于检查RabbitMQ服务的运行状态。
  • systemctl restart rabbitmq-server:用于重启RabbitMQ服务。
  • sleep 60:使脚本每隔60秒执行一次检查。