Домашняя страничка Стефурак П.Б. Управление агентом Smart UPS APC.
 
     Домашняя Промзона Спальный район  

Промзона \ Управление агентом Smart UPS APC.
Управление отключением Smart UPS APC из командной строки.

  Не секрет, что одним из ведущих поставщиков решений бесперебойного питания является компания APC.
  В комплект поставки оборудования APC входит ПО "APC PowerChute", которое позволяет управлять устройствами, получать информацию о них, программировать реакцию на различные события (описание ПО "APC PowerChute" и его архитектуры я оставлю за рамками данный статьи - все легко находится поисковыми системами).
  Не сказал бы, что это самое удобное ПО, задачи свои оно вполне успешно решает, но есть в нем и определенные проблемы и ограничения.
  Как раз вот это маленькое "но" и привело меня к тому, чтобы создать свое решение для управления агентом Smart UPS APC.
 
Проблема
  В "APC PowerChute" есть возможность настроить отключение оборудования в определенное время:
   
  Проблема в том, что "это" не работает :). Точнее работает, но "хитро" :).
  Если настроить отключение в пределах ближайшего часа - все происходит, как задумано. Но если попробовать настроить отключение, например через 2 часа - ничего не получается! Событие не срабатывает и оборудование не отключается!
  И этому есть более-менее внятное объяснение - взглянем на web интерфейс APC agent (этот агент устанавливается на каждый компьютер, к которому подключен по USB/COM UPS APC) раздел "Server Shutdown - Shutdown Now":
   
  Итого: может сервер APC PowerChute и умеет передавать агентам информацию об отключении не в пределах ближайшего часа, но они, увы, просто не могут ее обработать (диапазон времени ограничен ближайшим часом)!
 
И как с этим бороться
  Быстрого и простого готового решения я не нашел.
  С одной стороны, отказываться от ПО "APC PowerChute" нет возможности. С другой - задачу по отключению оборудования в произвольное время надо решить. Руками каждый день задавать необходимые настройки через web интерфейс или ПО "APC PowerChute" - это ну явно не выход (это при том, что настроить отключение можно только максимум в пределах ближайшего часа).
  Ок, напишем свое управление агентом APC, с "библиотекаршами и шахматами" - исходные тексты программы (код снабжен комментариями)..
  Алгоритм упрощенно:
  • штатный scheduler ОС в нужное время запускает наше ПО;
  • ПО подключается по web интерфейсу к нужному агенту APC;
  • логинится в систему с нужными именем и паролем;
  • отправляет настройки на отключение агенту (аналогично странице "Server Shutdown - Shutdown Now").
      По умолчанию заданы следующие настройки - shutdown через 10 мин ( т.е. если оборудование надо например отключить в 18:30, настраиваем старт задачи в 18:20. ОС будет корректно отключена самим агентом APC), автоматическое включение - через 14ть часов (включится около 8:30 на следующий день).
      Для корректной работы протокола https, ПО должны быть доступны библиотеки libeay32.dll и ssleay32.dll.
     
      Исходные тексты программы (код снабжен комментариями).    Synapse.
     
     
  •