mqtt(emqx)傻瓜式部署安装 centos7

emqx-5.3.0-el7-amd64.tar.gz

libaio-0.3.111-22.el10.x86_64.rpm

libatomic-4.8.5-44.el7.x86_64.rpm

mqtt.sh

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

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

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

# 检查文件是否存在
for rpm_file in "${DEP_RPMS[@]}"; do
    if [[ ! -f $rpm_file ]]; then
        echo "错误:依赖包 $rpm_file 不存在!"
        exit 1
    fi
done

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

# 安装依赖
echo "正在安装依赖库..."
for rpm_file in "${DEP_RPMS[@]}"; do
    echo "安装 $rpm_file ..."
    rpm -ivh --nodeps $rpm_file
    if [ $? -ne 0 ]; then
        echo "警告:$rpm_file 安装可能存在问题,继续执行..."
    fi
done

# 解压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 </dev/null 2>&1; then
    echo -e "\nEMQX 安装成功!"
    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"
    echo -e "4. 检查依赖库: ldd ${EMQX_HOME}/lib/quicer*/priv/libquicer_nif.so | grep 'not found'"
fi

完整的压缩包 和脚本内容 免费提供:

mqtt一键部署安装centos离线资源-CSDN下载

你可能感兴趣的:(mqtt,笔记,linux,linux,运维,服务器)