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

文件结构

install_emqx.sh

#!/bin/bash
# Filename: install_emqx.sh
# Description: EMQX离线一键部署脚本 (针对特殊目录结构)# 检查root权限
if [[ $EUID -ne 0 ]]; thenecho "请使用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 ]]; thenecho "错误:依赖包 $DEP_RPM 不存在!"exit 1
fiif [[ ! -f $EMQX_TAR ]]; thenecho "错误: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; doif [ -d "$dir" ] || [ -e "$dir" ]; thenmv "$dir" emqx/ 2>/dev/nullfi
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/nullEMQX_HOME="${INSTALL_DIR}/emqx"# 验证安装
if [[ ! -d "$EMQX_HOME" ]]; thenecho "错误:无法创建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; thenecho -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"
elseecho -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库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86029.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习基础:从概念到应用的全面解析

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

【机器学习1】线性回归与逻辑回归

‌逻辑回归与线性回归的主要区别在于理论基础、应用场景和数学模型。 1 线性回归 1.1 理论基础 线性回归主要用于建模自变量与连续性因变量之间关系的统计方法&#xff0c;试图利用一条线来拟合自变量与因变量之间的线性关系。 1.2 应用场景 从应用场景来说&#xff0c;适…

小程序 顶部栏标题栏 下拉滚动 渐显白色背景

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3164fd0e6d6848efaa1e87e02c35179e.png 下拉 100px 后 变成渐变成白色 显示原理 <wd-navbar fixed safeAreaInsetTop :bordered"false":custom-style"background-color: rgba(255, 255, 255, op…

Java底层原理:深入理解类加载机制与反射

一、Java类加载机制 Java类加载机制是Java运行时环境的重要组成部分&#xff0c;它负责将字节码文件加载到JVM内存中&#xff0c;并将其转换为可执行的类。类加载机制的实现涉及类加载器&#xff08;ClassLoader&#xff09;、类加载过程和类加载器的层次结构。 &#xff08;…

Android 中查看数据库内容方式

一、背景 创建的db数据库&#xff0c;有时候需要查看数据库中的数据内容,或者查看数据是否有更新到数据等等。这时候就需要查看数据库的内容。 二、数据库路径 博主用的是第三方的greendao数据库框架,生成的.db文件路径如下:(路径仅供参考) /data/data/app_package/database…

unity实现浮动组件

目录 前言方法后言组件代码 前言 在unity中&#xff0c;要让一个物体变得让人感到轻飘飘的&#xff0c;就可以给一个物体添加上浮动组件。今天我们就来实现它。 方法 我们先来看一下 sin ⁡ \sin sin函数的曲线。 在这条曲线上&#xff0c;随着 x x x向右移动&#xff0c; y…

Cisco Nexus93240接口带宽显示异常高故障- bug

hardware: cisco N93240 software: 9.3(10) 1个万兆接口&#xff0c;显示的rate超出几万倍 开case查询&#xff0c;告知是bug&#xff0c;需要版本升级解决。

pyhton基础【15】函数进阶一

目录 一. 函数进阶 1. 默认参数&#xff1a; 2. 关键字参数&#xff1a; 3. 可变参数&#xff1a; 4. 装饰器&#xff1a; 5. 匿名函数lambda&#xff1a; 6. 高阶函数&#xff1a; 7. 递归函数&#xff1a; 8. 类型注解&#xff1a; 二.函数参数的高级使用 缺…

【软考高级系统架构论文】论企业应用系统的数据持久层架构设计

论文真题 数据持久层 (Data Persistence Layer) 通常位于企业应用系统的业务逻辑层和数据源层之间,为整个项目提供一个高层、统一、安全、并发的数据持久机制,完成对各种数据进行持久化的编程工作,并为系统业务逻辑层提供服务。它能够使程序员避免手工编写访问数据源的方法…

ubuntu使用 Conda 安装 pyseer详细教程

pyseer 是一个用于 微生物全基因组关联分析(GWAS) 的生物信息学工具。它可以帮助研究者识别微生物(如细菌)中与表型(如耐药性、毒力、致病性)相关的遗传变异。 一、安装mamba conda install -n base -c conda-forge mamba二、创建虚拟环境 conda create -n pyseer-env …

Redis04

redis 一、redis的作用和使用场景 redis是一个内存级的高速缓存数据库。&#xff08;对比磁盘IO&#xff09; 使用场景&#xff1a;1、并发访问量大的 2、数据量小 3、修改不频繁 项目中&#xff1a;1、验证码 2、登录成功用户信息 3、首页&#xff08;模块数据 轮播图&…

计算机网络学习笔记:TCP可靠传输实现、超时重传时间选择

文章目录 一、TCP可靠传输实现二、TCP超时重传时间选择 一、TCP可靠传输实现 TCP可靠传输的实现&#xff0c;主要基于发送方和接收方的滑动窗口&#xff0c;以及确认机制&#xff1a; 发送方在未收到确认&#xff08;ACK&#xff09;前&#xff0c;可以将序号落在发送窗口内的…

Perl 正则表达式

Perl 正则表达式 引言 Perl 正则表达式&#xff08;Regular Expressions&#xff09;是Perl编程语言中一个强大且灵活的工具&#xff0c;用于字符串处理和模式匹配。正则表达式在文本处理、数据验证、搜索和替换等任务中发挥着至关重要的作用。本文将深入探讨Perl正则表达式的…

Security: RSA: 1024 bit 长度已经变得不安全了

文章目录 参考推荐限制RHEL相关配置man crypto-policies包含的应用使用方法是配置文件include参考 https://csrc.nist.gov/pubs/sp/800/57/pt1/r2/final https://www.linuxquestions.org/questions/linux-security-4/1024-bit-dsa-vs-2048-bit-rsa-4175439131/ https://csrc.n…

第一课:大白话中的机器学习

各位看官好啊!今天咱们来聊一个听起来高大上但实际上特别接地气的玩意儿——机器学习。别被这名字吓到,它其实就是教电脑像人类一样学习知识的一套方法。想象一下你教你家狗子坐下、握手的过程,机器学习差不多就是这么回事,只不过"学生"换成了电脑。 一、啥是机…

实现 el-table 中键盘方向键导航功能vue2+vue3(类似 Excel)

实现 el-table 中键盘方向键导航功能vue2vue3&#xff08;类似 Excel&#xff09; 功能需求 在 Element UI 的 el-table 表格中实现以下功能&#xff1a; 使用键盘上下左右键在可编辑的 el-input/el-select 之间移动焦点焦点移动时自动定位到对应单元格支持光标位置自动调整…

MyBatis:从入门到进阶

&#x1f4cc; 摘要 在 Java 后端开发中&#xff0c;MyBatis 是一个非常流行且灵活的持久层框架。它不像 Hibernate 那样完全封装 SQL&#xff0c;而是提供了对 SQL 的精细控制能力&#xff0c;同时又具备 ORM&#xff08;对象关系映射&#xff09;的功能。 本文将带你从 MyB…

leetcode51.N皇后:回溯算法与冲突检测的核心逻辑

一、题目深度解析与N皇后问题本质 题目描述 n皇后问题研究的是如何将n个皇后放置在nn的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。给定一个整数n&#xff0c;返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n皇后问题的棋子放置方案&#xff0c;该方…

算法-每日一题(DAY9)杨辉三角

1.题目链接&#xff1a; 118. 杨辉三角 - 力扣&#xff08;LeetCode&#xff09; 2.题目描述&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRo…

【MATLAB代码】制导方法介绍与例程——追踪法,适用于二维平面,目标是移动的|附完整源代码

追踪法(追踪导引法)是一种常见的导弹导引方式,其基本原理是保持导弹的速度矢量始终指向目标。在追踪法中,导弹的加速度可以表示为指向目标的加速度。 本文给出二维平面下,移动目标的追踪法导引的介绍、公式与matlab例程 订阅专栏后,可以直接查看完整源代码 文章目录 运行…