Подключаем ИБП через ApcUpsd

APC logoДля подключения ИБП (источников бесперебойного питания) иногда может пригодиться программа 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 при старте ОС.


Похожие материалы:
  • No related posts

  • Статья просмотрена 60 332 раз
    Запись опубликована в рубрике UPS, Программы с метками , , . Добавьте в закладки постоянную ссылку.

    3 комментария: Подключаем ИБП через ApcUpsd

    1. Ant говорит:

      >Теперь скопируем наши cgi скрипты в папку /cgi-bin на нашем http сервере…
      Неясно откуда мы их берем, эти скрипты. Я ставил apcupsd из .deb пакета, там их нет, а поддержка USB есть. Так понимаю, что скрипты можно получить компиляцией из исходников с опцией –enable-cgi?

    2. mik говорит:

      да, именно при компиляции с опцией –enable-cgi мы получаем cgi скрипты. Ну а в rpm или deb пакетах их уже собрали отдельным пакетом :)

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>