Ups & nut

Автор: vktr Дата: 29.07.2006 13:13 Здравствуйте!
Поставил в ASPLinux
Server IV пакет nut - yum install nut\*
Стали три пакета. Настроил запуск -

/sbin/upsdrvctl start
/usr/sbin/upsd
/usr/bin/upsc myups@localhost
/usr/sbin/upsmon

В логах до отключения питания все нормально. Но корректного выключения системы не происходит, как я понимаю по причине "lvm.static: No volume groups found". Ups через 3 минуты отключает питание системного блока. По команде же

upsmon -c fsd система корректно останавливается.

Вот полный лог:

Jul 29 12:29:46 piket1 upsd[3005]: Connected to UPS [myups]: ippon-ttyS1
Jul 29 12:29:46 piket1 upsd[3006]: Startup successful
Jul 29 12:29:57 piket1 upsd[3006]: Connection from 127.0.0.1
Jul 29 12:29:57 piket1 upsd[3006]: Client on 127.0.0.1 logged out
Jul 29 12:30:11 piket1 upsmon[3011]: Startup successful
Jul 29 12:30:11 piket1 upsd[3006]: Connection from 127.0.0.1
Jul 29 12:30:11 piket1 upsd[3006]: Client monuser@127.0.0.1 logged into UPS [myu
ps]
Jul 29 12:33:46 piket1 upsmon[3012]: UPS myups@localhost on battery
Jul 29 12:40:28 piket1 lvm.static: No volume groups found
Jul 29 12:40:28 piket1 lvm.static: No volume groups found
Jul 29 12:40:28 piket1 lvm.static: No volume groups found

Если возможно, пожалуйста помогите.
Виктор
Re: ups & nut 30.07.2006 01:31Cherepulya Заинтересовался я тут проблемой, поднял дома nut, с ужасом понял что батарейку в ИБП мне нужно менять Улыбка

Посмотрел что демон не шатдаунит хост (хотя мессаги рассылает), за 5 минут на коленке переделал скрипт с ноутбука (он при низком уровне зарядки батарейки хибернейтит ноут). Сей скрипт запихнуть в крон на каждые две минуты:

# by Cherepulya (cherepulya@mail.ru) 29.07.2006 Лицензия - GPL

#!/bin/bash


STATUS=`upsc myups@localhost | grep "ups.status"`
STATUS=${STATUS:12}
CAPACITY=`upsc myups@localhost | grep "battery.charge"`
CAPACITY=${CAPACITY:16}
LOW_CAPACITY="10" # значение в процентах текущей емкости батарейки ниже которой хост уходит в шатдаун

OFF="/usr/bin/poweroff"


if [ "$STATUS" = "OB" ]
then
echo "your host working on battarey" | mail -s "UPS status - WARNING" root@localhost
if [ "$CAPACITY" -lt "$LOW_CAPACITY" ]
then
echo "host going shutdown" | mail -s "UPS status - LOW BATTERY STATUS - SHUTDOWN" root@localhost
$OFF
fi


fi
Re: ups & nut 31.07.2006 10:55vktr Сделал все так как написано. Скрипт вручную запускается в cron настроил. Но система все равно вырубается некорректно... Практически ничего не изменилось, логи те же. Может нужно что-то отключить в конфигах nut?
Re: ups & nut 01.08.2006 00:08Cherepulya Что говорит upsc myups@localhost ?
Что в /etc/crontab?
Re: ups & nut 01.08.2006 21:18vktr [root@piket1 ups]# upsc myups@localhost
battery.charge: 94.1
battery.voltage: 13.4
driver.name: ippon
driver.parameter.port: /dev/ttyS1
driver.version: 2.0.3
driver.version.internal: 0.02
input.frequency: 49.9
input.voltage: 230.7
output.voltage: 230.7
ups.load: 007
ups.mfr: Ippon
ups.model: universal driver
ups.status: OL
ups.temperature: 25.0
[root@piket1 ups]#


crontab [----] 0 L:[ 1+ 0 1/ 11] *(0 / 255b)= S 83 0x53
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Re: ups & nut 02.08.2006 22:46Cherepulya и где в кроне висит правило на ежеминутный вызов даного скрипта?
Re: ups & nut 03.08.2006 07:55vktr При помощи webmin создал задание для cron на выполнение /etc/ups/skript

Сам файл с заданием расположен /var/spool/cron/root, содержимое -

0 * * * * /etc/webmin/bandwidth/rotate.pl
0 3 * * 6 reboot
* * * * * /etc/ups/skript

Проверил, из командной строки скрипт выполняется, из webmin/cron выдается сообщение
"Вывод команды /etc/ups/skript ..

/bin/sh: /etc/ups/skript: cannot execute binary file"

В /var/log/cron как будьто все в порядке?
Aug 3 07:45:01 piket1 crond[2783]: (root) CMD (/etc/ups/skript)

Пожалуйста посоветуйте как правильно сделать.
Re: ups & nut 03.08.2006 13:15Cherepulya 1) Выкиньте вебмин.
2) Делайте все руками
3) Подучите английский

/bin/sh: /etc/ups/skript: cannot execute binary file"

В каком месте тут неясно? Что перевести?

P.S. А еще покажите ls -l /etc/ups/
Re: ups & nut 17.08.2006 10:07vktr Здравствуйте.
Прошу прощения за задержку - был в командировке(

Автор: Cherepulya. Дата: 3 августа, 13:15
1) Выкиньте вебмин.
2) Делайте все руками
3) Подучите английский

Нисколько не сомневаюсь в ценности советов, позволю следующее замечание. Являясь администратором минимально возможного уровня windows nt4 server в небольшой фирме /4 сервера/ - без webmin перейти на linux самостоятельно не получилось бы. Да и на asplinux4 выбор пал только поэтой причине. Имею некоторое колличество подобных явлений в знакомом окружении. Да и webmin еще ни разу не подвел... Может только в последнем случае.

Конкретно по ups. Вписал в /etc/crontab
* * * * * root /etc/ups/skript
-не помогло.
Пробую выполнить скрипт вручную - при включенном 220-питании выполняется, при выключенном выдает ошибку:
[root@piket1 etc]# /etc/ups/skript
You must specify direct recipients with -s, -c, or -b.
/etc/ups/skript: line 12: root@localhost: command not found
/etc/ups/skript: line 13: [: 70.6: integer expression expected

При включении питания скрипт

# by Cherepulya (cherepulya@mail.ru) 29.07.2006 Лицензия - GPL
#!/bin/bash
STATUS=`upsc myups@localhost | grep "ups.status"`
STATUS=${STATUS:12}
CAPACITY=`upsc myups@localhost | grep "battery.charge"`
CAPACITY=${CAPACITY:16}
LOW_CAPACITY="50" # значение в процентах текущей емкости батарейки ниже которой хост уходит в шатдау
OFF="/usr/bin/poweroff"
if [ "$STATUS" = "OB" ]
then
echo "your host working on battarey" | mail -s "UPS status - WARNING"
root@localhost
if [ "$CAPACITY" -lt "$LOW_CAPACITY" ]
then
echo "host going shutdown" | mail -s "UPS status - LOW BATTERY
STATUS -
SHUTDOWN" root@localhost
$OFF
fi
fi

вручную выполняется.

P.S. А еще покажите ls -l /etc/ups/

[root@piket1 ups]# ls -l /etc/ups/
итого 136
-rw-r--r-- 1 root root 1072 Июл 26 13:33 hosts.conf
-rw------- 1 root root 89702 Авг 14 09:25 messages
-rwxr-xr-x 1 root root 616 Июл 31 09:16 skript
-rw-r----- 1 root nut 3656 Июл 28 17:27 ups.conf
-rw-r----- 1 root nut 1364 Июл 26 13:33 upsd.conf
-rw-r----- 1 root nut 2217 Июл 29 17:29 upsd.users
-rw-r----- 1 root nut 358 Авг 14 09:55 upsmon.conf
-rw-r----- 1 root nut 3884 Июл 26 13:33 upssched.conf
-rw------- 1 nut root 1420 Июл 26 13:33 upsset.conf
-rwxr--r-- 1 root root 93 Июл 29 11:45 ups_start
-rw-r--r-- 1 root root 1773 Июл 26 13:33 upsstats.html
-rw-r--r-- 1 root root 1867 Июл 26 13:33 upsstats-single.html

Спасибо.
Re: ups & nut 17.08.2006 12:18Cherepulya 1)/etc/ups/skript: line 12: root@localhost: command not found Тут прямым текстом укзывалось где проблема. Потому я и делал замечания насчет ангийского.

Почему это возникло - я наблюдаю ненужные переносы длинных строк.

Оттого все и не работает. Должно быть именно так:

#!/bin/bash

STATUS=`upsc myups@localhost | grep "ups.status"`
STATUS=${STATUS:12}
CAPACITY=`upsc myups@localhost | grep "battery.charge"`
CAPACITY=${CAPACITY:16}
LOW_CAPACITY="50" # значение в процентах текущей емкости батарейки ниже которой хост уходит в шатдаун
OFF="/usr/bin/poweroff"

if [ "$STATUS" = "OB" ]
then
echo "your host working on battarey" | mail -s "UPS status - WARNING" root@localhost
if [ "$CAPACITY" -lt "$LOW_CAPACITY" ]
then
echo "host going shutdown" | mail -s "UPS status - LOW BATTERY STATUS - SHUTDOWN" root@localhost
$OFF
fi
fi
Re: ups & nut 17.08.2006 15:20vktr Сделал - показываю с разбивкой по строкам:

#!/bin/bash

STATUS=`upsc myups@localhost | grep "ups.status"`

STATUS=${STATUS:12}

CAPACITY=`upsc myups@localhost | grep "battery.charge"`

CAPACITY=${CAPACITY:16}

LOW_CAPACITY="50" # значение в процентах текущей емкости батарейки ниже которой хост уходит в шатдау

OFF="/usr/bin/poweroff"

if [ "$STATUS" = "OB" ]

then

echo "your host working on battarey" | mail -s "UPS status - WARNING" root@localhost

if [ "$CAPACITY" -lt "$LOW_CAPACITY" ]

then

echo "host going shutdown" | mail -s "UPS status - LOW BATTERY STATUS - SHUTDOWN" root@localhost

$OFF

fi

fi

При этом скрипт при отсутствии питания выполняется с сообщением-
[root@piket1 ups]# ./skript
./skript: line 12: [: 73.5: integer expression expected



Пробовал несколько вариантов - ума не хватает. 12 строка-

if [ "$CAPACITY" -lt "$LOW_CAPACITY" ]
Re: ups & nut 17.08.2006 15:34Cherepulya А, все понял. У вас немного другой драйвер чем у меня. И он показывает текущую зарядку в дробных числах. У меня только в целых. Потому и вылезла ошибка. Модифицируем:

После строки
CAPACITY=${CAPACITY:16}

добавить такую:
CAPACITY=${CAPACITY:0:${#CAPACITY}-2}

Это сделает оба сравниваемых числа целыми.
Re: ups & nut 17.08.2006 15:51vktr Все заработало - скрипт выполняется во всех случаях без вывода ошибок. Но ups вырубает систему по прежнему некорректно... Проходит приблизительно 3 минуты /где-то может есть приоритетная настройка/ и не взирая на еще большой ресурс батареи ups вырубает питание...
Re: ups & nut 19.08.2006 04:05Bircoph Я всё-таки не понял: зачем какие-то скрипты, если настроенный
nut вполне корректно вырубает систему по сигналу low-battery
от упса. У меня всё нормально срабатывает, проверялось не
раз и не два в реальных условиях.

> Посмотрел что демон не шатдаунит хост

почему нет? Вот мой конфиг nut-2.0.2-0.fc4.2 (относящиеся к
делу места), upsmon.conf:
---
SHUTDOWNCMD "/sbin/shutdown -h +0"
# проверка каждые 3 сек, увеличьте если нужно
POLLFREQ 3
POLLFREQALERT 3
FINALDELAY 0
---
Если у вашего сервера действительно сложный (читай: долгий)
алгоритм завершения работы, то вы можете использовать
upsshed.conf для настройки скриптов, выполняющихся до
поступления сигнала low-battery, например, при 50% ёмкости
батареи.

Там и примеры готовые есть. В чём проблема? Зачем изобретать
велосипед?
Re: ups & nut 19.08.2006 10:14vktr Сделал изменения в upsmon.conf -
вот он весь -

MONITOR myups@localhost 1 nut 12345 master
# NOTIFYCMD /usr/local/sbin/callwall
#NOTIFYFLAG ONLINE SYSLOG+EXEC
#NOTIFYFLAG ONBATT SYSLOG+EXEC
#NOTIFYFLAG LOWBATT SYSLOG+EXEC
#MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 2
HOSTSYNC 15
#DEADTIME 15
POWERDOWNFLAG /etc/killpower
#RBWARNTIME 43200
#NOCOMMWARNTIME 300
FINALDELAY 0

Вот что выдается в командной строке при запуске служб ups и выключении 220-питания:

[root@piket1 ups]# ./ups_start
Network UPS Tools - UPS driver controller 2.0.3
Network UPS Tools - Ippon UPS driver 0.02 (2.0.3)

UPS identified
Network UPS Tools upsd 2.0.3
Connected to UPS [myups]: ippon-ttyS1
Synchronizing...done
battery.charge: 100.0
battery.voltage: 13.8
driver.name: ippon
driver.parameter.port: /dev/ttyS1
driver.version: 2.0.3
driver.version.internal: 0.02
input.frequency: 49.9
input.voltage: 231.6
output.voltage: 232.0
ups.load: 008
ups.mfr: Ippon
ups.model: universal driver
ups.status: OL
ups.temperature: 25.0
Network UPS Tools upsmon 2.0.3
UPS: myups@localhost (master) (power value 1)
Using power down flag file /etc/killpower
[root@piket1 ups]#
Broadcast message from nut (Sat Aug 19 09:41:33 2006):

UPS myups@localhost on battery

Тем не менее корректного выключения нет. Мне нужно чтобы ups через 3-5 минут после отключения 220-питания корректно выключил систему и все.
Спасибо.
Re: ups & nut 22.08.2006 00:36vovik 1. Я могу ошибаться, но по моему с UPS Ippon идёт диск на котором есть демон для линукса. Нет диска, можно посмотреть на сайте производителя.
2. Попробуйте apcupsd - у меня проблем с ним не было, даже SMS присылает когда сбой питания.
Re: ups & nut 22.08.2006 08:04vktr Здравствуйте.

1. Я могу ошибаться, но по моему с UPS Ippon идёт диск на котором есть демон для линукса. Нет диска, можно посмотреть на сайте производителя.

Да, программа управления ups от ippon есть, только в иксах и при наличии Java. Для сервера samba или сервера sendmail+роутер в интернете это по моему слишком. На сайте тоже самое. На ups powercom есть все и работает. Но пробный powercom как-то неудачно испустил дух. Приобрели ippon. Видимо придется уже купленные ippon куда-то пристраивать и снова пробовать powercom.


2. Попробуйте apcupsd - у меня проблем с ним не было, даже SMS присылает когда сбой питания.

Скачал apcupsd-std-3.12.4-1.fc4.i386.rpm - при установке-
error: Failed dependencies:
gd < 2.0 is needed by apcupsd-std-3.12.4-1.i386
Скачал apcupsd-std-3.12.4-1.rhel3.i386.rpm - при установке
error: Failed dependencies:
gd < 2.0 is needed by apcupsd-std-3.12.4-1.i386
libgd.so.1.8 is needed by apcupsd-std-3.12.4-1.i386
libstdc++.so.5 is needed by apcupsd-std-3.12.4-1.i386

А в составе asplinux4 пакета apcupsd кажется нет.
Re: ups & nut 22.08.2006 17:03Bircoph > Вот что выдается в командной строке при запуске служб ups и
> выключении 220-питания:
>
> [root@piket1 ups]# ./ups_start

Странно, вообще-то сервис нужно запускать командой
service ups start, а автозапуск сделать командой
chkconfig ups on. Тогда понятно, почему система не
**реагирует** на статус low battery: драйвера мало,
нужны все процессы (их 4 штуки).

> Тем не менее корректного выключения нет. Мне нужно чтобы ups
> через 3-5 минут после отключения 220-питания корректно
> выключил систему и все.

Тут работает другая идеология: не выключать, пока ёмкость
батареи не села ниже определённой -- ведь вы не для того
брали UPS с определённой ёмкостью, чтобы использовать
лишь часть его возможностей. UPS сам обязан об этом
сообщить: сигнал lowbattery:
---
Aug 16 09:31:32 localhost upsmon[2042]: UPS power@localhost on battery
Aug 16 09:31:33 localhost wall[15134]: wall: user nut broadcasted 1 lines (32 chars)
Aug 16 09:38:33 localhost upsmon[2042]: UPS power@localhost battery is low
Aug 16 09:38:33 localhost upsmon[2042]: Executing automatic power-fail shutdown
Aug 16 09:38:33 localhost wall[15137]: wall: user nut broadcasted 1 lines (36 chars)
Aug 16 09:38:33 localhost upsmon[2042]: Auto logout and shutdown proceeding
Aug 16 09:38:33 localhost wall[15142]: wall: user nut broadcasted 1 lines (37 chars)
Aug 16 09:38:33 localhost upsd[2039]: Host 127.0.0.1 disconnected (read failure)
Aug 16 09:38:33 localhost shutdown: shutting down for system halt
---

> 1. Я могу ошибаться, но по моему с UPS Ippon идёт диск на
> котором есть демон для линукса. Нет диска, можно посмотреть
> на сайте производителя.

Это совершенно дибильная, неграмотно написанная программа:
она открывает порт в __блокирующем__ режиме и поэтому
съедает весь процессор, каким бы он ни был. Я молчу про
работу исключительно под иксами.
Re: ups & nut 22.08.2006 18:04vktr Странно, вообще-то сервис нужно запускать командой
service ups start, а автозапуск сделать командой
chkconfig ups on. Тогда понятно, почему система не
реагирует на статус low battery: драйвера мало,
нужны все процессы (их 4 штуки).

В первом сообщении указаны команды, которые выполняются пакетом [root@piket1 ups]# ./ups_start

/sbin/upsdrvctl start
/usr/sbin/upsd
/usr/bin/upsc myups@localhost
/usr/sbin/upsmon

Может что неправильно? Проверял все по очереди. Ответы правильные...

Сделал:

[root@piket1 /]# service ups start
Запускается upsdrvctl: [ ОК ]
Запускается upsd: [ ОК ]
Запускается монитор UPS (мастер): [ ОК ]
[root@piket1 /]#
Broadcast message from nut (Tue Aug 22 17:50:52 2006):

UPS myups@localhost on battery

Ups сообщил о переключении на батарею, после чего через приблизительно 3 минуты некорректно вырубил компьютер... Вот такие чудеса.
Re: ups & nut 24.08.2006 01:15Bircoph Возможно, ups криво работает: нужный статус не выставляет.
Тогда попробуйте настроить upsshed (на выполнение нужной вам
команды после переключения на батарею), примеры есть в
конфиге. У меня готовых примеров нет, т.к. сам я этим не
пользуюсь, а копаться пока некогда.
RSS-материал