надо уже в начале темы FAQ по настройке nut писать. Кто-нибудь займитесь этим.
НАПРИМЕР ТАК
/usr/share/doc/nut/README.Debian.gz
содержимое файлов:
/etc/nut/ups.conf
[myups]
driver = megatec
port = /dev/ttyS0
desc = "Local UPS"
/etc/nut/hosts.conf
MONITOR myups@localhost "Local UPS"
/etc/nut/upsd.conf
ACL all 0.0.0.0/0
ACL localhost 127.0.0.1/32
ACCEPT localhost
REJECT all
/etc/nut/upsd.users
[monuser]
password = pass
allowfrom = localhost
upsmon master
/etc/nut/upsmon.conf
MONITOR myups@localhost 1 monmaster pass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
/etc/nut/upssched.conf
CMDSCRIPT /usr/local/ups/bin/upssched-cmd
/etc/default/nut
# start upsd
START_UPSD=yes
UPSD_OPTIONS=""
# start upsmon
START_UPSMON=yes
UPSMON_OPTIONS=""
sam@sam-desktop:~$ sudo chown root:nut /etc/nut/upsd.conf
[sudo] password for sam:
sam@sam-desktop:~$ sudo chmod 640 /etc/nut/upsd.conf
sam@sam-desktop:~$ sudo chown root:nut /etc/nut/upsd.users
sam@sam-desktop:~$ sudo chmod 640 /etc/nut/upsd.users
sam@sam-desktop:~$ sudo chown root:nut /etc/nut/upsmon.conf
sam@sam-desktop:~$ sudo chmod 640 /etc/nut/upsmon.conf
sam@sam-desktop:~$ sudo /etc/init.d/nut start
* Starting Network UPS Tools [ OK ]
Широковещательное сообщение от nut@sam-desktop
(somewhere) at 12:53 ...
Communications with UPS myups@localhost lost
Широковещательное сообщение от nut@sam-desktop
(somewhere) at 12:54 ...
UPS myups@localhost is unavailable
sam@sam-desktop:~$ sudo /etc/init.d/nut start
* Starting Network UPS Tools [ OK ]
sam@sam-desktop:~$ upsc myups@localhost
Error: Connection failure: Connection refused
sam@sam-desktop:~$ sudo addgroup nut nut
[sudo] password for sam:
Добавляется пользователь `nut' в группу `nut' ...
Добавление пользователя nut в группу nut
Готово.
sam@sam-desktop:~$
перегружаем компутер
sam@sam-desktop:~$ shutdown -r now
sam@sam-desktop:~$ upsc myups@localhost
battery.charge: 97.5
battery.voltage: 13.60
battery.voltage.nominal: 12.0
driver.name: megatec
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.version: 2.2.1-
driver.version.internal: 1.5.13
input.frequency: 49.9
input.voltage: 214.8
input.voltage.fault: 214.8
input.voltage.maximum: 218.8
input.voltage.minimum: 211.7
output.voltage: 214.8
output.voltage.nominal: 220.0
ups.beeper.status: enabled
ups.delay.shutdown: 0
ups.delay.start: 2
ups.load: 29.0
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL
ups.temperature: 25.0
sam@sam-desktop:~$
нарыл немного по опциям которые надо проверить и нормально сделать FAQ
-------------- /etc/ups/upssched.conf ------------
CMDSCRIPT /usr/sbin/upssched-cmd
LOCKFN /var/lib/ups/upssched.lock
PIPEFN /var/lib/ups/upssched.pipe
AT ONBATT * START-TIMER onbatt1 10
AT ONLINE * CANCEL-TIMER onbatt1
# после тестов замените 120 (2мин) на 1500 (25мин)
AT ONBATT * START-TIMER earlyshutdown 120
AT ONLINE * CANCEL-TIMER earlyshutdown
Проверьте, что система корректно закрывается после пропадания питания. Отсоедините UPS от питающей сети и наблюдайте на консоли сообщения (от пользователя nut).
В /var/log/messages :
# egrep ".*ups.*" /var/log/messages
Спустя 2 минуты после пропадания питания, система должна корректно закрыться.
Администратор должен получить соответствующие уведомления по e-mail.
После успешных тестов в файле /etc/ups/upssched.conf замените строку
AT ONBATT * START-TIMER earlyshutdown 120
на
AT ONBATT * START-TIMER earlyshutdown 1500
http://klax.tula.ru/~drweb/shutdown.freebsd.txtЧитать вместе с "Configuring automatic UPS shutdowns".
Описание проблемы
=================
В "Configuring automatic UPS shutdowns" описана процедура остановки операционной системы (далее ОС) и автоматического выключения ИБП при разрядке аккумулятора до критического уровня.
К сожалению, для FreeBSD эта процедура неприменима, потому что (насколько мне известно) FreeBSD не перемонтирует файловые системы в режиме read-only при остановке системы.
Предлагаемое решение
===================
Для автоматического выключения ИБП под управлением FreeBSD возможен такой вариант:
ИБП задается некоторая задержка отключения питания на выходе ИБП ("grace period"), достаточной длительности, чтобы ОС успела завершить свою работу и выключить компьютер (разумеется с БП ATX) прежде, чем питание на выходе ИБП будет отключено.
Настройка
=========
Время задержки отключения питания на выходе ИБП можно задать:
- в самом ИБП через upsrw(
;
- соответствующей директивой драйвера ИБП в файле ups.conf(5).
Покажу оба споcоба на примере моего ups.conf:
[ippon]
driver = megatec
port = /dev/cuad0
ondelay = 1
offdelay = 2
[apc]
driver = apcsmart
port = /dev/cuad5
cable = 940-0095B
sdtype = 1
Для ИБП ippon задержка отключения питания на выходе ИБП в 2 минуты задается директивой драйвера megatec "offdelay".
Для ИБП apc задержка в 3 минуты задается в настройках самого ИБП, потому что драйвер apcsmart не имеет нужной директивы:
>psc apc|grep shutd
ups.delay.shutdown: 180
Затем в скрипт /usr/local/etc/rc.d/nut вносятся добавления - к
nut_poststop() {
${nut_prefix}/libexec/nut/upsdrvctl stop
}
добавляем:
nut_poststop() {
${nut_prefix}/libexec/nut/upsdrvctl stop
if [ -f /etc/killpower ] ;then
rm -f /etc/killpower
${nut_prefix}/libexec/nut/upsdrvctl shutdown имя_ИБП
fi
}
В upsmon.conf(1) добавляем строку:
POWERDOWNFLAG /etc/killpower
Всё!
Простейшая проверка "Power races" (без остановки ОС)
====================================================
1. компьютер подключить к другому ИБП или в розетку!
Примечание: мой Back-UPS Pro 420 отказывается завершать работу ИБП, если подается напряжение на вход ИБП. Поэтому перед проверкой я отключал его от розетки.
2. выполнить
>/usr/local/libexec/nut/upsdrvctl shutdown имя_ИБП
3. засечь по часам, через сколько минут ИБП отключится.
4. Если выдергивали вилку из розетки, воткнуть обратно.
5. Спустя какое-то время ИБП должен включиться и подать напряжение на выходы.
Проверка "Power races" с остановкой ОС
======================================
1. компьютер подключить к другому ИБП или в розетку!
Примечание: мой Back-UPS Pro 420 отказывается завершать работу ИБП, если подается напряжение на вход ИБП. Поэтому перед проверкой я отключал его от розетки.
2. выполнить
>upsmon -c fsd
ОС начнет завершать свою работу.
3. засечь время между выключением компьютера и отключением ИБП. Разумеется, компьютер должен выключиться раньше ИБП.
4. Если выдергивали вилку из розетки, воткнуть обратно.
5. Спустя какое-то время ИБП должен включиться и подать напряжение на выходы, а компьютер должен начать загрузку ОС.
6. Убедитесь, что нет жалоб на "filesystem was not unmount properly".
Время между выключением компьютера и отключением ИБП должно быть достаточным, но не слишком долгим. Лучше иметь некоторый небольшой запас.