Архив рубрики: Linux

Установка MQQT server на CentOS 7

1: Установка Mosquitto

Пакет mosquitto доступен в репозитории EPEL (Extra Packages for Enterprise Linux).

Устанавливаем epel-release от администратора.

sudo yum -y install epel-release

Опция –y автоматически подтверждает запросы. Теперь можно установить пакет mosquitto.

sudo yum -y install mosquitto

Запускаем mosquitto:

sudo systemctl start mosquitto

Добавляем автозапуск:

sudo systemctl enable mosquitto

Проверяем работу mosquitto
Открываем ещё одну сессию терминала, в результате у вас должно быть два терминала. Запускаем в новом терминале команду mosquitto_sub:

mosquitto_sub -h localhost -t test

Флаг –h указывает имя хоста сервера MQTT, -t – тему. После запуска команды на экране не появится вывода, поскольку команда mosquitto_sub ждет получения сообщений. Вернитесь в первый терминал и опубликуйте сообщение:

mosquitto_pub -h localhost -t test -m "hello world"

Команда mosquitto_pub использует те же опции, что и mosquitto_sub, однако в этот раз используется дополнительный флаг –m (он позволяет ввести текст сообщения). Нажмите Enter, и вы увидите в другом терминале MQTT-сообщение hello world.

Для того, чтобы остановить выполнения команды нажмите CTRL+C.

Настройка пароля MQTT

С помощью утилиты mosquitto_passwd генерируем файла паролей. Эта команда предложит ввести пароль для указанного пользователя и поместит результат в /etc/mosquitto/passwd.

sudo mosquitto_passwd -c /etc/mosquitto/passwd USERNAME

Удалите файл mosquitto.conf.

sudo rm /etc/mosquitto/mosquitto.conf

Создайте новый конфигурационный файл Mosquitto и добавьте в него информацию о новом файле паролей.

sudo nano /etc/mosquitto/mosquitto.conf

Вставьте в файл:

allow_anonymous false
password_file /etc/mosquitto/passwd

Строка allow_anonymous false блокирует доступ анонимных пользователей. Строка password_file указывает путь к файлу паролей. Сохраните и закройте файл.

Перезапустите Mosquitto:

sudo systemctl restart mosquitto

Тестируем новые настройки. Для теста отправьте сообщение без пароля:

mosquitto_pub -h localhost -t "test" -m "hello world"

Вы получите ошибку:

Connection Refused: not authorised.
Error: The connection was refused.

Перейдите во второй терминал и подпишитесь на тему test.

mosquitto_sub -h localhost -t test -u "USERNAME" -P "PASSWORD"

Вернитесь в первый терминал и опубликуйте сообщение:

mosquitto_pub -h localhost -t "test" -m "hello world" -u "USERNAME" -P "PASSWORD"

Сообщение появиться во втором терминале. Настройка Mosquitto прошла успешно.

Для шифрования паролей необходимо использовать SSL-шифрования.


(btrfs) bash: cannot create temp file for here-document: No space left on device

df -h говорит, что свободно 75% места но не дает записать данные.

проверяем информацию о btrfs разделе:

root@debian:~# sudo btrfs fi show
Label: none uuid: 61b054bb-d48a-465a-adc7-99c1f5705b67
Total devices 1 FS bytes used 52.30GiB
devid 1 size 428.41GiB used 428.41GiB path /dev/sdb1

не правда ли чудо btrfs раздела, занято файлами 52, а по факту все 428.41GiB

Повторно проверяем состояние занятости разделов по факту:
root@debian:~# sudo btrfs fi df /
Data, single: total=427.40GiB, used=51.54GiB
System, single: total=4.00MiB, used=64.00KiB
Metadata, single: total=1.01GiB, used=768.06MiB
GlobalReserve, single: total=272.00MiB, used=8.34MiB

Делаем баланс раздела:
root@debian:~# sudo btrfs fi balance start -dusage=10 /

ОС будет пытаться переместить данные в пустые блоки (пока будем использовать не более 10%)

но получаем.
ERROR: error during balancing ‘/’ — No space left on device
There may be more info in syslog — try dmesg | tail

Удаляем часть данных, к примеру логов на пару сотен МБ и повторно выполняем команду. После успешного выполнения перемещения данных и освобождения блоков повышаем %, можно с шагом 5%, т.е. -dusage=10 -dusage=15 -dusage=20 и т.д.

Сразу после первого раза было освобождено 50+ Гб

Как задать стандартный домен в VestaCP

Для заглушки Vesta берёт первый домен, до которого дотянется в файле /etc/httpd/conf.d/vesta.conf. Заходим на сервер по ssh и открываем его:

sudo nano /etc/httpd/conf.d/vesta.conf

Перед нами список подгружаемых конфигурационных файлов. Нужно найти путь до конфига необходимого сайта-заглушки и перенести его в начало, но после стандартных conf-файлов.

sudo service httpd restart

Драйвер для видеокарт Intel

В Ubuntu по умолчанию уже установлен драйвер видеокарт Intel. Он содержится в пакете xserver-xorg-video-intel.

Обновление драйвера
Обновление из PPA
Этот репозиторий содержит разрабатываемую версию драйвера. В случае неправильной работы драйвера вы можете вернуться к стандартным драйверам при помощи утилиты ppa-purge.
Для обновления до последней версии драйвера xserver-video-intel можно воспользоваться готовым PPA. Открыть терминал и ввести следующие команды:

sudo add-apt-repository ppa:oibaf/graphics-drivers
Обновить список пакетов:

sudo apt-get update
Теперь, обновить систему:

sudo apt-get dist-upgrade
Перезагрузить компьютер.

Добавить новый диск в Centos 7

Добавляем диск в систему, проверяем, появился ли он:

[root@localhost]# fdisk -l
Разбиваем диск на разделы

[root@localhost]# fdisk /dev/sdb

Команда (m для справки): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Номер раздела (1-4, default 1): 1
Первый sector (2048-167772159, по умолчанию 2048):
Используется значение по умолчанию 2048
Last sector, +sectors or +size{K,M,G} (2048-167772159, по умолчанию 167772159):
Используется значение по умолчанию 167772159
Partition 1 of type Linux and of size 80 GiB is set

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.

Читать далее Добавить новый диск в Centos 7

Монтирование SMB дисков Linux Mint 18

Команда монтирования:
$ sudo mount -t cifs -o username=user,password=passwd,iocharset=utf8,file_mode=0777,dir_mode=0777 //network/resource /mount/point

Возможно потребуется установить
$ sudo apt-get install smbfs

Для автомонтирования можно добавить команду при загрузки ОС:
$ sudo nano /etc/rc.local

mount -t cifs -o username=USER,password=PASS,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.X.X/temp /media/temp
mount -t cifs -o username=USER,password=PASS,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.X.X/opr_fold /media/opr_fold
exit 0

Предварительно создав
sudo mkdir /media/temp
sudo mkdir /media/opr_fold