Centos 离线部署(MQTT)EMOX脚本并设置开机自启

文件结构

install_emqx.sh

bash 复制代码
#!/bin/bash
# Filename: install_emqx.sh
# Description: EMQX离线一键部署脚本 (针对特殊目录结构)

# 检查root权限
if [[ $EUID -ne 0 ]]; then
   echo "请使用root权限运行此脚本!" 
   exit 1
fi

# 定义依赖包和安装路径
DEP_RPM="./libaio-0.3.111-22.el10.x86_64.rpm"
EMQX_TAR="./emqx-5.1.4-el7-amd64.tar.gz"
INSTALL_DIR=$(pwd)

# 检查文件是否存在
if [[ ! -f $DEP_RPM ]]; then
    echo "错误:依赖包 $DEP_RPM 不存在!"
    exit 1
fi

if [[ ! -f $EMQX_TAR ]]; then
    echo "错误:EMQX安装包 $EMQX_TAR 不存在!"
    exit 1
fi

# 安装依赖
echo "正在安装依赖库..."
yum localinstall -y $DEP_RPM

# 解压EMQX
echo "正在解压EMQX到当前目录..."
tar -zxvf $EMQX_TAR

# 创建emqx目录并移动所有解压内容
echo "整理EMQX目录结构..."
mkdir -p emqx
for dir in bin data dynlibs etc erts-* lib log plugins releases; do
    if [ -d "$dir" ] || [ -e "$dir" ]; then
        mv "$dir" emqx/ 2>/dev/null
    fi
done

# 移动剩余文件
find . -maxdepth 1 -type f -exec mv {} emqx/ \; 2>/dev/null
find . -maxdepth 1 -type d -not -name "emqx" -exec mv {} emqx/ \; 2>/dev/null

EMQX_HOME="${INSTALL_DIR}/emqx"

# 验证安装
if [[ ! -d "$EMQX_HOME" ]]; then
    echo "错误:无法创建EMQX目录!"
    exit 1
fi

# 创建命令软链接
echo "创建命令软链接..."
ln -sf ${EMQX_HOME}/bin/emqx /usr/local/bin/emqx
ln -sf ${EMQX_HOME}/bin/emqx_ctl /usr/local/bin/emqx_ctl

# 创建systemd服务
echo "创建systemd服务..."
cat > /etc/systemd/system/emqx.service <<EOF
[Unit]
Description=EMQX Broker
After=network.target

[Service]
Type=forking
Environment=EMQX_ROOT_DIR=${EMQX_HOME}
ExecStart=${EMQX_HOME}/bin/emqx start
ExecStop=${EMQX_HOME}/bin/emqx stop
ExecReload=${EMQX_HOME}/bin/emqx restart
Restart=on-failure
RestartSec=30s
User=root
Group=root

[Install]
WantedBy=multi-user.target
EOF

# 重载systemd
systemctl daemon-reload

# 启动服务并设置开机自启
systemctl enable emqx
systemctl start emqx

# 验证安装
echo "等待5秒后检查EMQX状态..."
sleep 5
if ${EMQX_HOME}/bin/emqx_ctl status >/dev/null 2>&1; then
    echo -e "\nEMQX 5.1.4 安装成功!"
    echo -e "安装目录: ${EMQX_HOME}"
    echo -e "管理命令: systemctl [start|stop|status] emqx"
    echo -e "控制台访问: http://<服务器IP>:18083"
    echo -e "默认用户名: admin"
    echo -e "默认密码: public"
else
    echo -e "\n警告:EMQX服务启动异常,请检查以下内容:"
    echo -e "1. 检查配置文件: ${EMQX_HOME}/etc/emqx.conf"
    echo -e "2. 查看日志文件: tail -f ${EMQX_HOME}/log/*"
    echo -e "3. 手动调试命令: ${EMQX_HOME}/bin/emqx console"
fi

相对应的脚本、软件和依赖

emqx-5.1.4-el7-amd64.tar.gz

libaio-0.3.111-22.el10.x86_64.rpm

链接:CentOs离线部署EMOX脚本资源-CSDN库

相关推荐
AlfredZhao11 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户97183563346617 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪18 小时前
linux 拷贝文件或目录到指定的位置
linux
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理