APCUPSD — автовыключение сервера в ос FreeBSD

Задача:

Корректно выключать файловую помойку при отключении электропитания и разряде батареи ИБП

Установка APCUPSD 

Обновляем порты. Если делаете в первый раз, то в начале скачиваем и распаковываем

portsnap fetch && portsnap extract

если уже обновлялись, то достаточно команды

portsnap fetch update

Ищем нужный порт

cd /usr/ports/
make search name='apcupsd'

Переходим в нужный порт

cd /usr/ports/sysutils/apcupsd

Собираем и устанавливаем

make && make install && make clean

В окне конфигурации достаточно выбрать две опции:

  1. Compile APC SmartUPS serial driver
  2. Compile with USB Support driver
Этого хватит для подключения ИБП через USB, но в нашем примере оставим всё по умолчанию

Порт установлен, теперь нам доступны команды:

/usr/local/sbin/apcaccess
/usr/local/sbin/apcupsd
/usr/local/sbin/apctest

и доступен следующий скрипт для запуска

/usr/local/etc/rc.d/apcupsd

Сохраняем конфиг по умолчанию

cp /usr/local/etc/apcupsd/apcupsd.conf /usr/local/etc/apcupsd/apcupsd.conf.default

Редактируем конфиг

vi /usr/local/etc/apcupsd/apcupsd.conf

Если сильно не вникать с режимами подчиненный/ведомый, клиент/сервер, то в общем случае конфиг apcupsd.conf на локальной машине выглядят:

## apcupsd.conf v1.1 ##
# date: 2013-05-04
#
UPSNAME APC800
UPSCABLE usb
UPSTYPE usb
#DEVICE /dev/usv
#POLLTIME 60
LOCKFILE /var/spool/lock
SCRIPTDIR /usr/local/etc/apcupsd
PWRFAILDIR /var/run
NOLOGINDIR /var/run
ONBATTERYDELAY 6
BATTERYLEVEL 5
MINUTES 3
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 10
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
#FACILITY DAEMON
#UPSNAME UPS_IDEN
#BATTDATE mm/dd/yy
#SENSITIVITY H
#WAKEUP 60
#SLEEP 180
#LOTRANSFER  208
#HITRANSFER 253
#RETURNCHARGE 15
#BEEPSTATE T
#LOWBATT 2
#OUTPUTVOLTS 230
#SELFTEST 336

После того, как установка окончена, выполняем команду rehash, чтобы система обнаружила появление yновых команд

rehash

Добавляем apcupsd в автозагрузку

echo 'apcupsd_enable="YES"' >> /etc/rc.conf

Запускаем сервис

/usr/local/etc/rc.d/apcupsd start

Проверяем запустился ли сервис:

ps -ax | grep apc

Теперь проверяем работу ИБП. Выдергиваем на несколько секунд провод питания ИБП и смотрим в консоль.

Возможные ошибки apcupsd

1. Ошибка при тестировании утилитой apctest

2013-05-04 11:21:28 apctest 3.14.10 (13 September 2011) freebsd
Checking configuration ...
Attached to driver: usb
sharenet.type = Network & ShareUPS Disabled
cable.type = USB Cable
mode.type = USB UPS Driver
Setting up the port ...
apctest FATAL ERROR in generic-usb.c at line 674
Cannot find UPS device --
For a link to detailed USB trouble shooting information,
please see <http://www.apcupsd.com/support.html>.
apctest error termination completed

Проверяйте конфиг, возможно перепутали интерфейс подключения

UPSCABLE usb
UPSTYPE usb
#DEVICE /dev/usv

Документация  и ссылки по APCUPSD для вкуривания:

  1. http://www.apcupsd.com/
  2. http://www.apcupsd.com/manual/manual.html
  3. http://apcupsd.sourceforge.net/manual/manual.pdf
Share

You may also like...

2 комментария

  1. только начал читать сразу бросилось:
    portsnap fetch && portsnap extract

    можно так:
    portsnap fetch extract
    😉  

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

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