Инструменты пользователя

Инструменты сайта


freebsd:mosquitto

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
freebsd:mosquitto [2021/12/11 17:29]
alex
freebsd:mosquitto [2022/05/15 18:16] (текущий)
alex
Строка 70: Строка 70:
   Password:   Password:
   Reenter password:   Reenter password:
 +
 +Примеры использования утилиты mosquitto_passwd
 +
 +  * mosquitto_passwd [ -c | -D ] passwordfile username
 +  * mosquitto_passwd -b passwordfile username password
 +  * mosquitto_passwd -U passwordfile
 +Опции:
 +-b Запуск в пакетном режиме. Это позволяет ввести пароль в командной строке,​ который может быть удобным,​ но должен использоваться с осторожностью,​ поскольку пароль будет отображаться в командной строке и в истории команд.
 +
 +-c Создаёт новый файл паролей. Если файл уже существует,​ он будет перезаписан.
 +
 +-D Удалит указанного пользователя из файла паролей.
 +
 +-U Эта опция может использоваться для обновления/​конвертации файла паролей с паролями обычного текста в файл с использованием хэшированных паролей. Он изменит указанный файл. Он не определяет,​ были ли хэшированы пароли,​ поэтому его использование в файле паролей,​ который уже содержит хэшированные пароли,​ будет генерировать новые хэши на основе старых хешей и сделает файл паролей непригодным для использования.
 +
 +//​passwordfile//​ Файл с паролями для изменения.
 +
 +//​username//​ Имя пользователя для добавления/​обновления/​удаления.
 +
 +//​password//​ Пароль для использования в пакетном режиме.
  
 Запускаю mosquitto. Запускаю mosquitto.
Строка 84: Строка 104:
   nobody ​  ​mosquitto ​ 10552 4  tcp4   ​10.215.130.1:​1883 ​    ​10.215.130.186:​3387   nobody ​  ​mosquitto ​ 10552 4  tcp4   ​10.215.130.1:​1883 ​    ​10.215.130.186:​3387
  
 +Для запуска mosquitto при старте системы в rc.config добавил строку
   mosquitto_enable="​YES"​   mosquitto_enable="​YES"​
  
 +Для добавления в топики информации с датчиков температуры написал скрипт
 +  #!/bin/sh
 +  while true
 +  do
 +  term0=`/​usr/​local/​bin/​digitemp_DS9097 -t 0 -q -c /​usr/​local/​etc/​digitemp.conf`
 +  term1=`/​usr/​local/​bin/​digitemp_DS9097 -t 1 -q -c /​usr/​local/​etc/​digitemp.conf`
 +  term2=`/​usr/​local/​bin/​snmpwalk -v1 -c ччччч_ro ХХХ.ХХХ.ХХХ.ХХХ .1.3.6.1.4.1.2021.2000.6.4.1.2.5.116.101.109.112.48.1 | awk -F'​["​]'​ '{ print $2 }'`
 +  ​
 +  /​usr/​local/​bin/​mosquitto_pub -h localhost -t sensors/​ds18b20_0 -u temp -P pft,bcm -m $term0
 +  /​usr/​local/​bin/​mosquitto_pub -h localhost -t sensors/​ds18b20_1 -u temp -P pft,bcm -m $term1
 +  /​usr/​local/​bin/​mosquitto_pub -h localhost -t sensors/​ds18b20_2 -u temp -P pft,bcm -m $term2
 +    sleep 6
 +  done
 +
 +Конструкция -F'​["​]'​ изменяет разделитель awk с пробела по умолчанию на двойные кавычки.
 +
 +Чтобы скрипт стартовал как демон написал с папке /​usr/​local/​etc/​rc.d ещё одни скрипт
 +  #!/bin/sh
 +  ​
 +  # PROVIDE: mqtt
 +  # REQUIRE: DAEMON
 +  # BEFORE: LOGIN
 +  # KEYWORD: shutdown
 +  ​
 +  #
 +  # Add the following lines to /​etc/​rc.conf to enable mqtt:
 +  #
 +  # mqtt_enable="​YES"​
 +  #
 +  #
 +  ​
 +  . /​etc/​rc.subr
 +  ​
 +  name=mqtt
 +  rcvar=${name}_enable
 +  pidfile="/​var/​run/​${name}.pid"​
 +  ​
 +  command=/​scripts/​mqqt-temp
 +  start_cmd="​${name}_start"​
 +  stop_cmd="​${name}_stop"​
 +  status_cmd="​${name}_status"​
 +  ​
 +  mqtt_start() {
 +    /​usr/​sbin/​daemon -P ${pidfile} -r -f  $command
 +  }
 +  ​
 +  mqtt_stop() {
 +    if [ -e "​${pidfile}"​ ]; then
 +      kill -s TERM `cat ${pidfile}`
 +    else
 +      echo "​${name} is not running"​
 +    fi
 +  }
 +  ​
 +  mqtt_status() {
 +    if [ -e "​${pidfile}"​ ]; then
 +      echo "​${name} is running as pid `cat ${pidfile}`"​
 +    else
 +      echo "​${name} is not running"​
 +    fi
 +  }
 +  ​
 +  load_rc_config ${name}
 +  run_rc_command "​$1"​
 +
 +rc скрипт не демонизирует процесс,​ для демонизации используется строка **///​usr/​sbin/​daemon//​**
 +
 +ссылки:​\\
 +https://​www.freebsd.org/​cgi/​man.cgi?​query=daemon\\
 +https://​serverfault.com/​questions/​873185/​freebsd-rc-d-script-doesnt-start-as-a-daemon\\
 +https://​poptechno.ru/​kak-ispolzovat-neskolko-razdelitelej-v-awk/​\\
 +http://​snakeproject.ru/​rubric/​article.php?​art=script_daemon_freebsd_28.05.2019\\
 +https://​habr.com/​ru/​post/​137857/​
freebsd/mosquitto.1639243760.txt.gz · Последние изменения: 2021/12/11 17:29 — alex