==== Banana Pi установка NUT ==== Установливаю NUT root@bananapi ~ # apt-get install nut nut-client nut-cgi nut-snmp nut-dev Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Заметьте, вместо «nut-dev» выбирается «libupsclient1-dev» Будут установлены следующие дополнительные пакеты: libgd2-xpm libjpeg8 libperl5.14 libsensors4 libsnmp-base libsnmp15 libupsclient1 libxpm4 nut-server Предлагаемые пакеты: libgd-tools lm-sensors snmp-mibs-downloader nut-dev nut-xml Рекомендуемые пакеты: bash-completion НОВЫЕ пакеты, которые будут установлены: libgd2-xpm libjpeg8 libperl5.14 libsensors4 libsnmp-base libsnmp15 libupsclient1 libupsclient1-dev libxpm4 nut nut-cgi nut-client nut-server nut-snmp . . . Настраивается пакет nut-client (2.6.4-2.3+deb7u1) … [info] nut-client disabled, please adjust the configuration to your needs. [info] Then set MODE to a suitable value in /etc/nut/nut.conf to enable it. Настраивается пакет nut-server (2.6.4-2.3+deb7u1) … [info] nut-server disabled, please adjust the configuration to your needs. [info] Then set MODE to a suitable value in /etc/nut/nut.conf to enable it. Настраивается пакет nut (2.6.4-2.3+deb7u1) … Настраивается пакет nut-cgi (2.6.4-2.3+deb7u1) … Настраивается пакет nut-snmp (2.6.4-2.3+deb7u1) … apt-get install nut nut-client nut-cgi nut-snmp nut-dev 8,34s user 3,36s system 5% cpu 3:37,05 total Для работы с nut добавляю пользователя. root@bananapi /etc/nut # adduser rootups Добавляется пользователь «rootups» ... Добавляется новая группа «rootups» (1000) ... Добавляется новый пользователь «rootups» (1000) в группу «rootups» ... Создаётся домашний каталог «/home/rootups» ... Копирование файлов из «/etc/skel» ... Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: пароль успешно обновлён Изменение информации о пользователе rootups Введите новое значение или нажмите ENTER для выбора значения по умолчанию Полное имя []: Номер комнаты []: Рабочий телефон []: Домашний телефон []: Другое []: Данная информация корректна? [Y/n] y Добавляю созданного пользователя в группу **nut** root@bananapi /etc/nut # usermod -G nut rootups UPS подключен с последовательному порту **ttyS3** (J12 4(RXD) и 6(TXD))\\ Для работы с этим портом, добавляю пользователя **nut** в группу dialout. root@bananapi ~ # usermod -G dialout nut root@bananapi ~ # reboot Все конфигурационные файлы NUT находятся в директории «**/etc/nut**». Назначение: * **ups.conf** - настройки UPS драйвера для сбора данных * **upsd.conf** - настройка основного демона upsd для Network UPS Tools * **upsd.users** - контроль доступа к UPS демону (профили пользователей) * **upsmon.conf** - настройки монитора UPS демона **nut.conf**\\ Выставляю режим работы MODE=standalone **ups.conf** [bpiups] driver = blazer_ser port = /dev/ttyS3 desc = "IPPON Smart Power Pro" default.battery.voltage.high = 13.60 default.battery.voltage.low = 10.60 Опции: * **[ups_name]** - имя используется как адрес вашего UPS. Вы можете его изменить на любое произвольное имя. * **driver** - драйвер, используемый для работы с UPS. * **port** - порт, на котором висит UPS * **desc** - описание устройства (так, на всякий случай, чтобы не забыть). * **sdorder** - необязательный элемент. При наличии нескольких UPS подключенных к серверу можно выключать в определенном порядке. используя upsdrvctl можно выключить все 0s или 1s, 2s и тд. Для исключения последовательной остановки используйте -1. * **nolock** - необязательный элемент, его не рекомендуется использовать в его этом конфиге. Он служит для отключения блокировки порта при пользовании утилитой. * **maxstartdelay** - необязательный элемент. Может быть, заданна как глобальная переменная выше вашего первого UPS. Это значение определяет, сколько upsdrvctl будет ожидать окончания запуска драйвера. Данная возможность предоставляет стабильность в работе. Значение по умолчанию равно 45 секундам. * **cable** - Если драйвер UPS требует дополнительных параметров, можно указать их здесь. Индекс кабеля можно посмотреть тут "**/usr/local/share/doc/nut/cables**". Можено не указывать это значение, если подключение к UPS стандартно. * **default.battery.voltage.high** и **default.battery.voltage.low** служат для вычисления примерного заряда батареи в процентах. Также при снижении напряжения до уровня default.battery.voltage.low запускается скрипт выключения системы. **upsd.conf** LISTEN 127.0.0.1 3493 **upsd.users** Настраиваю пользователя для работы с ups демоном. [rootups] password = gfhjkm allowfrom = localhost upsmon master **Доступные опции.** Значения:\\ password - пароль пользователя\\ allowfrom - откуда разрешено подключатся Каждый UPS монитор может определяться как один из трех возможных типов:\\ **upsmon master** - полные полномочия управлением питания подключенных к системе UPS под управлением upsmon, эта система отвечает за выключение разряженного аккумулятора. Выключение происходит после безопасного выключения всех Slave систем. Если ваш UPS подключен непосредственно к системе через последовательный порт, то для upsmon системы следует определить этот UPS как Master.\\ **upsmon slave** - эта система, под управлением upsmon и она не выключается непосредственно. Операционная система будет выключена перед отключением питания Master. Используйте этот режим при запуске монитора на других компьютерах работающих на том же UPS. И очевидно, что только один сервер может быть подключен к последовательному порту на UPS, коим будет является Master. Все остальные сервера будут Slave.\\ **upsmon monitor-only** - при этом режиме будут создаваться уведомления о состоянии или изменении работы батареи, переключении на линию и т.д., но не завершать работу системы.\\ **actions** - Действия пользователя с применением upsd.\\ * **SET** - изменить значения определенных переменных в UPS\\ * **FSD** - установка флага "принудительного выключения" для UPS\\ **instcmds** - разрешения пользователю на инициирование конкретных команд. "ALL" - разрешает использовать все команды. Существует множество команд, 'upscmd -l' показывает, что поддерживает оборудование. Пример несколько команд.\\ * test.panel.start - старт теста передней панели * test.battery.start - старт теста батареи * test.battery.stop - остановка теста батареи * calibrate.start - запуск калибровки батареи * calibrate.stop - остановка калибровки батареи **upsmon.conf**\\ Убираю комментарий с RUN_AS_USER RUN_AS_USER upsmaster И добавляю строку MONITOR bpiups@localhost 1 rootups gfhjkm master Запускаю ups демона root@bananapi ~ # upsdrvctl start Network UPS Tools - UPS driver controller 2.6.4 Network UPS Tools - Megatec/Q1 protocol serial driver 1.55 (2.6.4) Duplicate driver instance detected! Terminating other driver! Broadcast Message from rootups@bana (somewhere) at 23:09 ... Communications with UPS bpiups@localhost lost Supported UPS detected with megatec protocol Vendor information unavailable No values provided for battery high/low voltages in ups.conf Using 'guestimation' (low: 10.400000, high: 13.000000)! Battery runtime will not be calculated (runtimecal not set) Broadcast Message from rootups@bana (somewhere) at 23:09 ... Communications with UPS bpiups@localhost established Запускаю монитор /etc/init.d/ups-monitor start Проверяю. root@bananapiupsc bpiups@127.0.0.1 battery.charge: 100 battery.voltage: 13.80 battery.voltage.high: 13.00 battery.voltage.low: 10.40 battery.voltage.nominal: 12.0 device.type: ups driver.name: blazer_ser driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ttyS3 driver.version: 2.6.4 driver.version.internal: 1.55 input.current.nominal: 2.0 input.frequency: 49.6 input.frequency.nominal: 50 input.voltage: 255.0 input.voltage.fault: 255.0 input.voltage.nominal: 230 output.voltage: 214.0 ups.beeper.status: disabled ups.delay.shutdown: 30 ups.delay.start: 180 ups.load: 0 ups.status: OL TRIM ups.temperature: 37.8 ups.type: offline / line interactive root@bananapi ~ # Копируем файлы NUT в директорию http-сервера: root@bananapi ~www # mkdir /var/www/nut root@bananapi ~www # cp /usr/share/nut/www/* /var/www/nut/ Проверяю. что в **/usr/lib/cgi-bin/** есть папка **nut** В папку **/etc/apache2/conf.d** добавил файл **nut.conf**\\ Содержимое файла # cat nut.conf # therm Apache configuration Alias /power /var/www/nut Order deny,allow Allow from all **hosts.conf** добавил строку MONITOR bpiups@localhost "Banana PI UPS" **upsset.conf** раскомментировал. I_HAVE_SECURED_MY_CGI_DIRECTORY # apachectl graceful Ссылки:\\ https://www.easycoding.org/2012/10/01/podnimaem-nut-v-linux.html\\ http://geckich.blogspot.com/2012/10/low-battery-ups-nut-network-ups-tools.html\\ http://habrahabr.ru/post/102032/