Pull to refresh

Настройка Apcupsd методом грязного хака

Говоря об UPS`ах сразу приходит на ум компания APC, мировой лидер по производству источников бесперебойного питания и аккумуляторов к ним. Компания эта не нуждается в представлении и может гордится своими продуктами. Однако не все так так гладко в Датском Королевстве. Дело в том что для правильной работы UPS`а необходимо ПО с гибкой настройкой. Для этих целей существует пакет утилит PowerChute в двух редакциях.

PowerChute Personal Edition представляет собой ПО для домашних UPS`ов с интерфейсом COM или USB.
PowerChute Business Edition по сути PRO версия младшей редакции, но с поддержкой больших серверных UPS`ов с интерфейсом LAN, работают такие хранители спокойствия по стандартам и в любой ОС.

Я же являюсь владельцем простенького, но довольно функционального Back-UPS RS 700G, штука хорошая и выручала меня не раз. В принципе можно и обойтись и без ПО если вы не гик и не держите у себя дома домашний сервер. Так вот ближе к делу!
Захотелось мне как-то в одну холодную зимнюю ночь удаленно узнать не выключалось ли у меня дома электричество, и если да то насколько. Как известно любая программа контролирующая что либо ведет лог файл где описаны события. PowerChute не стал исключением он исправно вел лог в формате *.dat. Анализ структуры лога выполненный с помощью плагина к Notepad++, HEX-Editor выявил возможность конвертирования в теплый ламповый *.log, но программист из меня никудышный, поэтому как сказал товарищ Ильич «Мы пойдем другим путем!».

Гугление на тему альтернативного ПО вывело меня на программку Apcupsd которая рассчитана на *NIX системы, но имеет порт под windows выполненный с помощью Cygwin. Дистрибутив программы вести всего около 1МБ и был скачен в мгновение ока, установку делал всех модулей. После запуска в трее появилась иконка с доступом информации о моем девайсе. Лог файл имеет привычный текстовый стандарт и может хранится в любом месте. Можно было только радоваться, чем я и занялся. Однако, после беглого изучения документации я узнал что существует возможность мониторинга через браузер. Работает эта вкусность с помощью вкупе с апачем и выполнена в виде CGI скриптов. Немного приуныв, так-как предыдущая попытка заставить работать питон скрипты окончилась неудачей я сел за изучение httpd.conf. Танцы с бубном выдали результат при котором CGI таки активировалось и завелось, ниже приведен кусок конфига, для Apache 2.2 возможно кому нить пригодится.

<IfModule alias_module>
ScriptAlias /cgi/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi/"

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all


Содержимое из папки \apcupsd1\cgi перекочевало в \Apache2.2\cgi\ в браузере по запросу 127.0.0.1/cgi/multimon.cgi торжественно высветилось окно!

image

Первоначальная радость сменилось огорчением вызванным некорректной кодировкой информации о часовом поясе. Причина проблемы была выявлена анализом исходного кода содержимого окна.
<?xml version="1.0" encoding="UTF-8" ?>

Гласил заголовок! А надпись кириллицей понятное дело была выполнена в windows-1251. Тут снова пришло на помощь Notepad++ с плагином HEX-Editor. Анализ и редактирование файла multimon.cgi привело к следующему.

charset=utf-8 -->> charset=utf-9
encoding="UTF-8" -->> encoding="UTF-9"

После этого надпись в статусном окне гласила.

image

Конечно это не самое лучшее решение и я надеюсь что в следующих версиях программы эта проблема будет решена, но уже сейчас Apcupsd радует своей функциональностью и мультиплатформенностью. Напоследок еще один скриншотик.

image
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.