Стандартом де-факто для моніторингу UPS (ББЖ) в *NIX-операційках давно є Network UPS Tools (NUT). Система потужна, але дещо заплутана в налаштуваннях.
Встановлення в Ubuntu Linux1
Я використовую старенький UPS Mustek Powermust 600 USB.

Інсталяція NUT.
sudo apt-get install nut nut-client
Увага, важливо! В Ubuntu існують проблеми з правами доступу системи NUT до USB-пристрою. Для цього потрібно підправляти ці права при появі пристрою в системі. Потрібний скрипт розробники системи вже створили для нас. Тому:
sudo cp /lib/udev/rules.d/52-nut-usbups.rules /etc/udev/rules.d/
Перевантажити комп’ютер.
Який UPS використовується.
sudo nano /etc/nut/ups.conf
[mustec]
driver = blazer_usb
port = auto
desc = "Mustec Powermust 600"
Назву драйвера для driver можна пошукати тут. Можна погуглити свою модель. Можна просто перебрати декілька назв драйверів (один драйвер може охоплювати дуже багато моделей).
Перевірка що драйвер UPS працює правильно:
# sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.7.1
Network UPS Tools - Megatec/Q1 protocol USB driver 0.10 (2.7.1)
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)
Якщо все OK то
# sudo upsdrvctl stop
і продовжуємо.
Хто матиме право підключатися до системи моніторингу.
sudo nano /etc/nut/upsd.users
[admin]
password = PASS1
actions = SET
instcmds = ALL
[monuser]
password = PASS2
upsmon master
Які саме UPS будуть моніторитися.
Система підтримує і віддалене спостереження, по мережі.
sudo nano /etc/nut/hosts.conf
MONITOR mustec@localhost "My PC"
Глобальні налаштування системи.
sudo nano /etc/nut/upsmon.conf
MONITOR mustec@localhost 1 monuser PASS2 master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
NOTIFYCMD /etc/nut/sms.sh
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT SYSLOG+WALL+EXEC
NOTIFYCMD це саморобний скриптик для надсилання SMS. Скрипту, як параметр, передається назва події.
Його можна "викинути", або замінити на інший тип сповіщення. Значення SYSLOG+WALL+EXEC вказує на те які системи сповіщення буде використано. Так, просто SYSLOG лише запише подію у системний журнал. SYSLOG+WALL запише подію і надішле сповіщення в консоль і т.д.
При досягненні критичного розряду батареї NUT дась системі команду вимкнутися.
Режим роботи системи.
sudo nano /etc/nut/nut.conf
MODE=standalone
Ручний перезапуск служби.
sudo service ups-monitor restart
Моніторинг параметрів
# sudo upsc mustec@localhost
battery.charge: 100
battery.voltage: 13.50
battery.voltage.high: 13.00
battery.voltage.low: 10.40
battery.voltage.nominal: 12.0
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.7.1
driver.version.internal: 0.10
input.current.nominal: 2.0
input.frequency: 49.9
input.frequency.nominal: 50
input.voltage: 204.2
input.voltage.fault: 204.2
input.voltage.nominal: 220
output.voltage: 204.2
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 32
ups.productid: 0003
ups.status: OL
ups.temperature: 25.0
ups.type: offline / line interactive
ups.vendorid: 06da
або
# sudo upsc mustec@localhost ups.status
OL
-
Насправді все тестувалося не в "чистій" Ubuntu а в Ubuntu Mate та Xubuntu, але на результат це не впливає :) . ↩