个人智能家居系统 - MQTT服务器搭建(centOS7.3)

0x00 参考

0x01 配置

  • General configuration

    所见即所得,保持默认即可

  • Default listener

    # 设置端口
    port 1883
    # 设置最大连接数
    max_connections -1
    # 使用协议,mqtt或者websocket
    protocol mqtt
  • SSL/TLS support

    用于 default listerner 的安全设置,暂未设置

  • Extra listeners

    用于 websocket ,暂未设置

  • SSL/TLS support

    用于 Extra listeners 的安全设置,暂未设置

  • Persistence

    持续性设置,即 mosquitto 重启后恢复设置,暂未设置

    而且客户端的断线重连机制更加稳妥

  • Logging

    开启服务时重定向 stdout 等信息至文件,这里只设置 type

  • Security

    # 设置前缀
    clientid_prefixes guduyl
    # 禁止匿名登录
    allow_anonymous false
    # 设置用户名密码文件
    password_file /etc/mosquitto/pwfile
    # 设置权限信息文件
    acl_file /etc/mosquitto/aclfile
  • Bridges

    用于分布式服务器,暂未设置

  • SSL/TLS support

    分布式服务器安全设置,暂未设置

  • External config files

  • rsmb options

用户名密码设置

  • mosquitto_passwd 命令,查看帮助即可

权限文件设置

  • 仿照 aclfile.example 文件

    • test/jh/# 可匹配 test/jh/a/b/c, test/jh/a/b, test/jh/a.test/jh
    • test/jh/+ 可匹配 test/jh/a, test/jh/b, 但是不能匹配 test/jh/a/b

启动停止

  • 启动

    #! /bin/bash
    
    ps -ef | grep mosquitto | tee /tmp/graduation.tmp
    
    lines=$(awk 'END{print NR}' /tmp/graduation.tmp)
    lines=`expr $lines + 1`
    for ((i=1; i<$lines; ++i))
    do
    uid=$(sed -n "$i, 1p" /tmp/graduation.tmp | awk '{print $1}')
    if [ $uid == "mosquit+" ] ; then
    break
    fi
    done if [ $i != $lines ] ; then
    echo "the mosquitto1.4.1 had been started already"
    else
    echo "Starting the mosquitto1.4.1 ..."
    mosquitto -d -c /etc/mosquitto/mosquitto.conf > /root/graduation/mosquitto.log 2>&1
    echo "the mosquitto1.4.1 has been started"
    echo "the log file is /root/graduation/mosquitto.log"
    fi rm -f /tmp/graduation.tmp
  • 停止

    #! /bin/bash
    
    ps -ef | grep mosquitto | tee /tmp/graduation.tmp
    
    lines=$(awk 'END{print NR}' /tmp/graduation.tmp)
    lines=`expr $lines + 1`
    for ((i=1; i<$lines; ++i))
    do
    uid=$(sed -n "$i, 1p" /tmp/graduation.tmp | awk '{print $1}')
    if [ $uid == "mosquit+" ] ; then
    break
    fi
    done if [ $i != $lines ] ; then
    pid=$(sed -n "$i, 1p" /tmp/graduation.tmp | awk '{print $2}')
    echo "killing $pid ..."
    kill $pid
    echo "the mosquitto1.4.1 has been stopped"
    else
    echo "the mosquitto1.4.1 has not been started yet"
    fi rm -f /tmp/graduation.tmp
  • 重启

    #! /bin/bash
    
    /root/graduation/stop.sh
    /root/graduation/start.sh

个人智能家居系统 - MQTT服务器搭建(centOS7.3)的更多相关文章

  1. 树莓派安装开源智能家居系统 Domoticz

    前言 最近闲来无事开始折腾自己的智能家居系统,对比了几种比较流行的开源智能家居系统,觉得 Domoticz 更适合,Domoticz的官方中文文档,虽然不是很完善但还是可以参考一下.需要注意的是下文用 ...

  2. Mqtt服务器搭建

    .bg { background: #99CC99 } Mqtt服务器搭建 测试环境:CentOS64位 1.安装基础软件 yum install gcc-c++ yum install cmake ...

  3. Home Assistant + 树莓派:强大的智能家居系统 · 安装篇

    Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 转载:Home Assistant + 树莓派:强大的智能家居系统 · 安装篇 目录 1. 初始安装 3. Homebridg ...

  4. 常见MQTT服务器搭建与试用

    常见MQTT服务器搭建与试用   简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠 ...

  5. Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇

    转载:Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇 目录 HASS 配置框架 主文件设置 Homebridge 设置 鹬蚌相争? 设备追踪设置 更新日志 作者的话 相信 ...

  6. 智能家居系统 Home Assistant 系列 --介绍篇

    一. HomeAssistant 是什么? HomeAssistant是构建智慧空间的神器.是一个成熟完整的基于 Python 的智能家居系统,设备支持度高,支持自动化(Automation).群组化 ...

  7. 智能家居系统 Home Assistant 系列 --安装系统之Windows

    Home Assistant 是一个成熟完整的基于 Python 的智能家居系统. 首先得安装Python环境.在浏览器中访问Python官网 www.python.org 进入Downloads中的 ...

  8. 常见MQTT服务器搭建[转载]

    简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通 ...

  9. Apollo mqtt 服务器搭建

    html { overflow-x: initial !important } :root { --bg-color: #ffffff; --text-color: #333333; --select ...

随机推荐

  1. [BZOJ1902]:[NOIP2004]虫食算(搜索)

    题目传送门 题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母. 来看一个简单的例子: 43#98650#45+8468#6633=444455069 ...

  2. [LeetCode]-DataBase-Combine Two Tables

    Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId ...

  3. JavaScript DOM位置尺寸API

    我们需要了解几个基础概念,每个HTML元素都有下列属性 offsetWidth clientWidth scrollWidth offsetHeight clientHeight scrollHeig ...

  4. ACM ICPC 2011-2012 Northeastern European Regional Contest(NEERC)A ASCII Area

    A: 给你一个矩阵求'/' 和 '\' 围成的图形,简单签到题,有一些细节要考虑. 题解:一行一行的跑,遇到'/'和'\' 就加0.5, 在面积里面的'.' 就加1.用一个flag来判断是否在围住的图 ...

  5. Powershell + HTA

    众所周知,Powershell早已被集成到了windows的环境中,国外大牛玩得不亦乐乎,而国内圈子却很少听到讨论Powershell的,HTA更不用说了,不是学计算机的或许根本不知道这是什么鬼 Li ...

  6. ps 和 pstree的用法

    ps 查看某个具体的命令进程: ps -C cmd-name: 如: ps -C httpd // 如果有多个名字相同的进程, 如httpd... 应该是它下面的子进程, 这时会显示第一个进程id. ...

  7. Git - grafted 和 shallow update not allowed

    一般人对开源的模板进行修改是总会进行这样的一条龙操作 # 克隆最近一次提交 git clone xxx --depth 1 # 修改修改修改 提交提交提交 vim xxx git commit -am ...

  8. Spring框架中的依赖注入

    依赖注入(DI : Dependency Injection)是基于.xml配置文件内节点的书写. 注入类型: 1.设置注入,调用了Bean的setXXX()进行值注入 普通属性(value值表示要显 ...

  9. c# 跨应用程序域通讯

    public class MyTask { public class MyEventArgs : EventArgs { public object EventData { get; private ...

  10. cocos2dx基础篇(20) 扩展动作CCGridAction

    [3.x]     (1)去掉"CC" [CCGridAction] CCGridAction有两个子类:CCGrid3DAction.CCTiledGrid3DAction.而我 ...