Ubuntu установка NUT (Network UPS Tools) и настройка UPS

Дата: 03/05/2014
Тема: Linux

Инструменты nut (Network UPS tools) - это демоны управления и мониторинга UPS, которые могут быть использованы для различных UPS.

Подключение UPS PwerMust 800 USB и настройка отключение.

Установка NUT:
#apt-get install nut

файл /etc/nut/nut.conf

MODE=standalone
Настройки драйвера для сбора данных:

Подключаем UPS к USB, смотрим вывод lsusb:

#lsusb
Bus 003 Device 002: ID 0665:5161 Cypress Semiconductor USB to Serial

Список драйверов можно посмотреть в файле /usr/share/nut/driver.list

"Mustek"        "ups"   "2"     "Yukai PowerMust" "1000 USB (PID: 5161)"        "blazer_usb"

Теперь, когда определились с драйвером, можно приступать к настройке.

редактируем файл /etc/nut/ups.conf

[mustek]
driver = blazer_usb
port = auto
offdelay = 120
ondelay = 5
desc = "PowerMust 800 USB"
  1. [mustek] - имя UPS
  2. driver - это драйвер для UPS, располагается в каталоге /lib/nut
  3. desc - описание UPS
  4. offdelay - время в секундах до автоматического отключения
  5. ondelay - время автоматического включения после команды отключения в минутах
Настройка службы upsd:

файл /etc/nut/upsd.conf

LISTEN 127.0.0.1 3493
Профили пользователей для доступа к upsd:

Добавляем пользователя в файл /etc/nut/upsd.users

[upsmon]
password  = password
actions = SET
instcmds = ALL
upsmon master
  1. [upsmon] - имя пользователя
  2. password - пароль
  3. instcmds - команды которые разрешены
  4. upsmon - режим работы master или slave
Настройки монитора:

файл /etc/nut/upsmon.conf

MONITOR mustek@localhost 1 upsmon password master
MINSUPPLIES 1
NOTIFYCMD /sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYMSG ONLINE     "UPS %s on line power"
NOTIFYMSG ONBATT     "UPS %s on battery"
NOTIFYMSG LOWBATT    "UPS %s battery is low"
NOTIFYMSG FSD        "UPS %s: forced shutdown in progress"
NOTIFYMSG COMMOK     "Communications with UPS %s established"
NOTIFYMSG COMMBAD    "Communications with UPS %s lost"
NOTIFYMSG SHUTDOWN   "Auto logout and shutdown proceeding"
NOTIFYMSG REPLBATT   "UPS %s battery needs to be replaced"
NOTIFYMSG NOCOMM     "UPS %s is unavailable"
NOTIFYMSG NOPARENT   "upsmon parent process died - shutdown impossible"
NOTIFYFLAG ONLINE    SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT    SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT   SYSLOG+WALL+EXEC
NOTIFYFLAG FSD       SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK    SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD   SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN  SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT  SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM    SYSLOG+WALL+EXEC
NOTIFYFLAG NOPARENT  SYSLOG+WALL+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5

Правила udev для доступа к USB устройствам

#udevadm trigger --subsystem-match=usb --action=change

Перезагружаемся или вместо перезагрузки можно сделать так:

передергиваем USB кабель UPS

#udevadm control --reload-rules
#udevadm trigger
#service nut restart

Проверим, что UPS сообщает о своем состоянии:

# upsc mustek@localhost
battery.voltage: 13.60
battery.voltage.nominal: 12.0
beeper.status: enabled
device.type: ups
driver.name: blazer_usb
driver.parameter.bus: 002
driver.parameter.pollinterval: 2
driver.parameter.port: 005
driver.parameter.productid: 5161
driver.parameter.vendorid: 0665
driver.version: 2.6.3
driver.version.internal: 0.04
input.current.nominal: 3.0
input.frequency: 49.9
input.frequency.nominal: 50
input.voltage: 227.4
input.voltage.fault: 227.9
input.voltage.nominal: 220
output.voltage: 227.9
ups.delay.shutdown: 120
ups.delay.start: 180
ups.load: 6
ups.productid: 5161
ups.status: OL
ups.temperature: 25.0
ups.type: offline / line interactive
ups.vendorid: 0665

Коды состояний: ups.status:

  1. OL - система работает на линии (on line power)
  2. OB - система работает от батареи (on battery)
  3. LB - система работает от севшей батареи (low battery)
Настройка upssched  (планировщик):

файл /etc/nut/upssched.conf

CMDSCRIPT /etc/nut/cmd.sh
PIPEFN /tmp/upspipe
LOCKFN /tmp/upslock
AT COMMBAD * EXECUTE commbad
AT COMMOK * EXECUTE commok
AT NOCOMM * EXECUTE nocomm
AT ONBATT * EXECUTE powerout
AT ONBATT * START-TIMER shutdownnow 90
AT LOWBATT * EXECUTE shutdowncritical
AT ONLINE * CANCEL-TIMER shutdownnow
AT ONLINE * EXECUTE powerup

AT ONBATT * START-TIMER shutdownnow 90 - при работе от батареи ждем 90 секунд и выполняем скрипт cmd.sh с аргументом shutdownnow.

 

Получение списка команд UPS

# upscmd -l mustek@localhost
Instant commands supported on UPS [mustek]:

beeper.toggle - Toggle the UPS beeper
load.off - Turn off the load immediately
load.on - Turn on the load immediately
shutdown.return - Turn off the load and return when power is back
shutdown.stayoff - Turn off the load and remain off
shutdown.stop - Stop a shutdown in progress
test.battery.start - Start a battery test
test.battery.start.deep - Start a deep battery test
test.battery.start.quick - Start a quick battery test
test.battery.stop - Stop the battery test

Можно запустить, например, тест батареи, командой

$ upscmd -u upsmon -p password mustek test.battery.start

Скрипт cmd.sh

#touch /etc/nut/cmd.sh
#chmod 666 /etc/nut/cmd.sh

содержимое файла cmd.sh

#!/bin/sh
case $1 in
      commbad)
      logger  "UPS communications failure"
      ;;
      commok)
      logger  "UPS communications restored"
      ;;
      nocomm)
      logger  "UPS communications cannot be established"
      ;;
      powerout)
      logger "UPS on battery. Shutdown in 90 seconds...."
      upscmd -u upsmon -p password mustek@localhost shutdown.return
      ;;
      shutdownnow)
      logger "UPS has been on battery for 120 seconds. Starting orderly shutdown"
      upsmon -c fsd
      ;;
      shutdowncritical)
      logger "UPS battery level CRITICAL. Shutting down NOW!!!!"
      upsmon -c fsd
      ;;
      powerup)
      logger "UPS on line. Shutdown aborted."
      upscmd -u upsmon -p pass mustek@localhost shutdown.stop
      ;;
      *)
      logger "Unrecognized command: $1"
      ;;
esac

Если все работает правильно, ОС завершит работу, компьютер будет принудительно отключен от электросети (UPS выключится). После возобновление подачи питания, он автоматически подаст питание на компьютер.



Это статья "Домашняя страничка Andy"
https://andy.od.ua

URL этой статьи: https://andy.od.ua/news_46.html

Яндекс.Метрика