Для подключения ИБП (источников бесперебойного питания) иногда может пригодиться программа apcupsd. Как видно из названия программа ориентирована на ИБП марки APC в отличие от рассмотренной мной предыдущей программы nut. Apcupsd поддерживает подключения ИБП через COM, USB, LAN, SNMP и еще пару специфических соединений. В данной статье речь пойдет о подключении через USB и COM кабели.
С установкой программы в большинстве дистрибутивов врядли будут затруднения. Но имейте ввиду, что по умолчанию в пакете отключена сборка usb и cgi пакетов. Для сборки с usb и cgi (чтобы смотреть данные через web) я указывал такие опции.
./configure --enable-cgi --enable-usb --with-upstype=usb --with-upscable=usb
Если у вас ИБП подключается через COM то дополнительные опции можно не указывать, ну кроме опции по желанию –enable-cgi, для web просмотра. Само-собой для web просмотра данных ИБП у вас должен уже стоять и корректно работать http сервер. Пример конфигурирования apache сервера рассмотрен в статье Настройка связки apache+php+mysql.
После установки программы правим конфиг /etc/apcupsd/apcupsd.conf. Ниже приведен конфиг для ИБП Smart APC1500 RM, который подключен по USB в ОС freebsd. показать
Я почти все значения оставил по умолчанию, только задал имя ИБП, тип подключения кабеля и имя порта к которому подключено устройство. Имя порта узнать очень просто. Когда подключите USB кабель, посмотрите вывод команды dmesg или файл /var/log/messages в последних строках должен быть определен тип устройства и имя порта, которому этому устройству назначено.
Для подключения через COM порт надо заменить переменные на такие (номер порта COM подставите свой – для linux обычно это порты /dev/ttyS0-1, а для freebsd /dev/cua0-1, что соответствуют портам com1-2)
UPSCABLE smart
UPSTYPE apcsmart
DEVICE /dev/ttyS1
Проверьте вот эти две строки в конфиге и выставьте свои значения при необходимости
BATTERYLEVEL 5
MINUTES 3
Первая строка означает минимальный уровень зарядки батареи в процентах, после которого начинается выключение компьютера.
Вторая – минимальное количество минут, оставшихся до исчерпания батареи, после которого начинается выключение (количество минут рассчитывает сам ИБП)
По наступлению одного из этих событий происходит выполнение команды doshutdown, которое описано в файле /etc/apcupsd/apccontrol (проверьте подходит ли эта команда для вашей ОС).
Вот и вся настройка, можно запускать скрипт запуска apcupsd. Скрипт здесь приводить не буду, т.к. он отличается в разных ОС и даже в разных дистрибутивах linux он выглядит немного по разному.
После запуска скрипта, можно также с помощью его же проверить статус устройства – apcupsd.sh status. показать
Теперь скопируем наши cgi скрипты в папку /cgi-bin на нашем http сервере и подправим файл /etc/apcupsd/host.conf.
MONITOR 127.0.0.1 "M2"
Можем набирать в браузере http://ваш_комьютер/cgi-bin/multimon.cgi и порадоваться таким картинкам 🙂
С помощью команды /etc/apcupsd/apccontrol можно принудительно давать команды ИБП. Список команда и их действие можно посмотреть тут.
Не забудьте включить демон apcupsd при старте ОС.
>Теперь скопируем наши cgi скрипты в папку /cgi-bin на нашем http сервере…
Неясно откуда мы их берем, эти скрипты. Я ставил apcupsd из .deb пакета, там их нет, а поддержка USB есть. Так понимаю, что скрипты можно получить компиляцией из исходников с опцией –enable-cgi?
Нашел ответ на свой вопрос: в Debian есть отдельный пакет apcupsd-cgi.deb
да, именно при компиляции с опцией –enable-cgi мы получаем cgi скрипты. Ну а в rpm или deb пакетах их уже собрали отдельным пакетом 🙂
SNMP возможно включить у него?