* [Comm] nut and UPS shutdown
@ 2003-07-25 8:02 Grigory Batalov
2003-07-25 9:29 ` Alexey Borovskoy
0 siblings, 1 reply; 7+ messages in thread
From: Grigory Batalov @ 2003-07-25 8:02 UTC (permalink / raw)
To: community
Здравствуйте!
В документации к NUT рекомендуется прописать в shutdown-скрипт
строки типа:
if (test -f /etc/killpower)
then
echo "Killing the power, bye!"
/usr/local/ups/bin/upsdrvctl shutdown
fi
Поскольку у нас shutdown - не скрипт, то совершенно непонятно,
куда их вписывать. Кто как поступает?
P.S. 'upsdrvctl shutdown' инициирует выключение UPS
(и нагрузки, соответственно) при невозможности
дальнейшей работы от батарей.
--
Григорий Баталов,
группа техподдержки
ОАО "Ковдорский ГОК"
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] nut and UPS shutdown
2003-07-25 8:02 [Comm] nut and UPS shutdown Grigory Batalov
@ 2003-07-25 9:29 ` Alexey Borovskoy
2003-07-28 7:15 ` Grigory Batalov
0 siblings, 1 reply; 7+ messages in thread
From: Alexey Borovskoy @ 2003-07-25 9:29 UTC (permalink / raw)
To: community
* 25 Июль 2003 21:02 Grigory Batalov <grisxa@mail.ru>
Добрый день.
> Здравствуйте!
>
> В документации к NUT рекомендуется прописать в shutdown-скрипт
> строки типа:
>
> if (test -f /etc/killpower)
> then
> echo "Killing the power, bye!"
> /usr/local/ups/bin/upsdrvctl shutdown
> fi
>
> Поскольку у нас shutdown - не скрипт, то совершенно непонятно,
> куда их вписывать. Кто как поступает?
>
> P.S. 'upsdrvctl shutdown' инициирует выключение UPS
> (и нагрузки, соответственно) при невозможности
> дальнейшей работы от батарей.
Я его запихал в /etc/init.d/halt
Там есть такие строки:
# See if this is a powerfail situation.
UPSCTL=/etc/apcupsd/apccontrol
if [ -x "$UPSCTL" -a -f /etc/apcupsd/powerfail ]; then
action "Attempting to turn the UPS off:" "$UPSCTL" killpower
message="The system is turned off"
command=/sbin/poweroff
fi
Вот этот приведенный кусочек скрипта и подвергнулся правке.
Был изменен путь к бинарнику и флагу_что_упс_на_батареях.
Но идеологически правильнее сделать это через альтернативы.
--
Алексей.
JID:alb@jabber.ru
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] nut and UPS shutdown
2003-07-25 9:29 ` Alexey Borovskoy
@ 2003-07-28 7:15 ` Grigory Batalov
2003-07-28 8:15 ` Alexey Borovskoy
2003-07-28 8:17 ` Sergey Bolshakov
0 siblings, 2 replies; 7+ messages in thread
From: Grigory Batalov @ 2003-07-28 7:15 UTC (permalink / raw)
To: community
On Fri, 25 Jul 2003 22:29:01 +1300
Alexey Borovskoy <alexey_borovskoy@mail.ru> wrote:
> > В документации к NUT рекомендуется прописать в shutdown-скрипт
> > строки типа:
> >
> > if (test -f /etc/killpower)
> > then
> > echo "Killing the power, bye!"
> > /usr/local/ups/bin/upsdrvctl shutdown
> > fi
> >
> > Поскольку у нас shutdown - не скрипт, то совершенно непонятно,
> > куда их вписывать. Кто как поступает?
> >
> > P.S. 'upsdrvctl shutdown' инициирует выключение UPS
> > (и нагрузки, соответственно) при невозможности
> > дальнейшей работы от батарей.
>
> Я его запихал в /etc/init.d/halt
> Там есть такие строки:
>
> # See if this is a powerfail situation.
> UPSCTL=/etc/apcupsd/apccontrol
> if [ -x "$UPSCTL" -a -f /etc/apcupsd/powerfail ]; then
> action "Attempting to turn the UPS off:" "$UPSCTL" killpower
> message="The system is turned off"
> command=/sbin/poweroff
> fi
>
> Вот этот приведенный кусочек скрипта и подвергнулся правке.
> Был изменен путь к бинарнику и флагу_что_упс_на_батареях.
Спасибо, это то, что нужно.
Однако, при выполнении "shutdown" upsdrvctl вызывает драйвер
от UPS с соответствующими параметрами, например:
/usr/lib/nut/apcsmart -a ups250 -d 0 -k
Если /usr располагается на отдельном разделе, то в этот момент
он уже размонтирован. Так что команда "shutdown" UPS-у передана
быть не может, в результате чего машина проходит дальнейшие
стадии из /etc/init.d/halt и выключается по poweroff.
Как этого избежать?
--
Григорий Баталов,
группа техподдержки
ОАО "Ковдорский ГОК"
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] nut and UPS shutdown
2003-07-28 7:15 ` Grigory Batalov
@ 2003-07-28 8:15 ` Alexey Borovskoy
2003-07-28 8:17 ` Sergey Bolshakov
1 sibling, 0 replies; 7+ messages in thread
From: Alexey Borovskoy @ 2003-07-28 8:15 UTC (permalink / raw)
To: community
* 28 Июль 2003 20:15 Grigory Batalov <grisxa@mail.ru>
> On Fri, 25 Jul 2003 22:29:01 +1300
>
> Alexey Borovskoy <alexey_borovskoy@mail.ru> wrote:
> > > В документации к NUT рекомендуется прописать в
> > > shutdown-скрипт строки типа:
> > >
> > > if (test -f /etc/killpower)
> > > then
> > > echo "Killing the power, bye!"
> > > /usr/local/ups/bin/upsdrvctl shutdown
> > > fi
> > >
> > > Поскольку у нас shutdown - не скрипт, то совершенно
> > > непонятно, куда их вписывать. Кто как поступает?
> > >
> > > P.S. 'upsdrvctl shutdown' инициирует выключение UPS
> > > (и нагрузки, соответственно) при невозможности
> > > дальнейшей работы от батарей.
> >
> > Я его запихал в /etc/init.d/halt
> > Там есть такие строки:
> >
> > # See if this is a powerfail situation.
> > UPSCTL=/etc/apcupsd/apccontrol
> > if [ -x "$UPSCTL" -a -f /etc/apcupsd/powerfail ]; then
> > action "Attempting to turn the UPS off:" "$UPSCTL"
> > killpower message="The system is turned off"
> > command=/sbin/poweroff
> > fi
> >
> > Вот этот приведенный кусочек скрипта и подвергнулся правке.
> > Был изменен путь к бинарнику и флагу_что_упс_на_батареях.
>
> Спасибо, это то, что нужно.
> Однако, при выполнении "shutdown" upsdrvctl вызывает драйвер
> от UPS с соответствующими параметрами, например:
>
> /usr/lib/nut/apcsmart -a ups250 -d 0 -k
>
> Если /usr располагается на отдельном разделе, то в этот
> момент он уже размонтирован. Так что команда "shutdown" UPS-у
> передана быть не может, в результате чего машина проходит
> дальнейшие стадии из /etc/init.d/halt и выключается по
> poweroff.
>
> Как этого избежать?
В документации на NUT, рекомендуют делать ремаунт раздела, на
котором лежит NUT, в readonly. Но это как-то криво.
У меня на этой бесперебойке висит сервак и часть свитчей опорного
сегмента сети. И я упустил из виду факт невыключения
бесперебойки, так как свитчи должны гаситься в последнюю очередь
и потребляют они совсем немного.
Я считаю, что надо перенести /usr/lib/nut в /lib/nut. А также
завести альтернативу для управления бесперебойками и
соответственно подправить скрипт halt в /etc/init.d/.
У меня на работе лежит nut, пересобранный указанным способом. Но
руки как-то не дошли его поставить.
Если будет нужна помощь в правке необходимых скриптов, то я могу
в этом помочь.
--
Алексей.
JID:alb@jabber.ru
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] nut and UPS shutdown
2003-07-28 7:15 ` Grigory Batalov
2003-07-28 8:15 ` Alexey Borovskoy
@ 2003-07-28 8:17 ` Sergey Bolshakov
2003-07-29 11:16 ` Grigory Batalov
2003-07-30 6:18 ` Grigory Batalov
1 sibling, 2 replies; 7+ messages in thread
From: Sergey Bolshakov @ 2003-07-28 8:17 UTC (permalink / raw)
To: community
>>>>> "Grigory" == Grigory Batalov <grisxa@mail.ru> writes:
> On Fri, 25 Jul 2003 22:29:01 +1300
> Alexey Borovskoy <alexey_borovskoy@mail.ru> wrote:
>> > В документации к NUT рекомендуется прописать в shutdown-скрипт
>> > строки типа:
>> >
>> > if (test -f /etc/killpower)
>> > then
>> > echo "Killing the power, bye!"
>> > /usr/local/ups/bin/upsdrvctl shutdown
>> > fi
>> >
>> > Поскольку у нас shutdown - не скрипт, то совершенно непонятно,
>> > куда их вписывать. Кто как поступает?
>> >
>> > P.S. 'upsdrvctl shutdown' инициирует выключение UPS
>> > (и нагрузки, соответственно) при невозможности
>> > дальнейшей работы от батарей.
>>
>> Я его запихал в /etc/init.d/halt
>> Там есть такие строки:
>>
>> # See if this is a powerfail situation.
>> UPSCTL=/etc/apcupsd/apccontrol
>> if [ -x "$UPSCTL" -a -f /etc/apcupsd/powerfail ]; then
>> action "Attempting to turn the UPS off:" "$UPSCTL" killpower
>> message="The system is turned off"
>> command=/sbin/poweroff
>> fi
>>
>> Вот этот приведенный кусочек скрипта и подвергнулся правке.
>> Был изменен путь к бинарнику и флагу_что_упс_на_батареях.
> Спасибо, это то, что нужно.
> Однако, при выполнении "shutdown" upsdrvctl вызывает драйвер
> от UPS с соответствующими параметрами, например:
> /usr/lib/nut/apcsmart -a ups250 -d 0 -k
> Если /usr располагается на отдельном разделе, то в этот момент
> он уже размонтирован. Так что команда "shutdown" UPS-у передана
> быть не может, в результате чего машина проходит дальнейшие
> стадии из /etc/init.d/halt и выключается по poweroff.
> Как этого избежать?
Вероятно, переносом в /lib. Буду признателен, если кто-то суммирует
сказанное и перешлет мне либо в BTS.
--
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] nut and UPS shutdown
2003-07-28 8:17 ` Sergey Bolshakov
@ 2003-07-29 11:16 ` Grigory Batalov
2003-07-30 6:18 ` Grigory Batalov
1 sibling, 0 replies; 7+ messages in thread
From: Grigory Batalov @ 2003-07-29 11:16 UTC (permalink / raw)
To: community
[-- Attachment #1: Type: text/plain, Size: 2357 bytes --]
On Mon, 28 Jul 2003 11:17:47 +0300
Sergey Bolshakov <s.bolshakov@sam-solutions.net> wrote:
> > /usr/lib/nut/apcsmart -a ups250 -d 0 -k
>
> > Если /usr располагается на отдельном разделе, то в этот момент
> > он уже размонтирован. Так что команда "shutdown" UPS-у передана
> > быть не может, в результате чего машина проходит дальнейшие
> > стадии из /etc/init.d/halt и выключается по poweroff.
>
> > Как этого избежать?
>
> Вероятно, переносом в /lib. Буду признателен, если кто-то суммирует
> сказанное и перешлет мне либо в BTS.
Поскольку драйвера от nut - это самостоятельные программы,
их можно использовать отдельно от upsdrvctl, то я бы положил
их прямо в /sbin. Это легко меняется в спеке следующим
образом:
--- nut.spec.orig 2003-03-15 16:39:19 +0300
+++ nut.spec 2003-07-29 11:09:11 +0400
@@ -3,7 +3,7 @@
%define _sbindir /sbin
%define confdir %_sysconfdir/%name
-%define modeldir %_libdir/%name
+%define modeldir %_sbindir
%define cgidir /var/www/cgi-bin
%define runas upsmon
@@ -78,7 +81,7 @@
%install
%make_install DESTDIR=%buildroot install install-cgi
-%__mv -f %buildroot%modeldir/upsdrvctl %buildroot%_sbindir
+#%__mv -f %buildroot%modeldir/upsdrvctl %buildroot%_sbindir
%__install -p -m0755 -D %SOURCE1 %buildroot%_initdir/upsd
%__install -p -m0755 -D %SOURCE2 %buildroot%_initdir/upsmon
%__mkdir_p %buildroot%_localstatedir/%name
Кроме того, нужно заменить в секции %files
%modeldir/*
на
%modeldir/apcsmart
%modeldir/newapc
и т.д. все драйвера. Я собирал только нужные, так что
здесь не привожу. Тогда кусок отключения UPS из
/etc/init.d/halt выглядит так:
UPSCTL=/sbin/upsdrvctl
if [ -x "$UPSCTL" -a -f /etc/killpower ]; then
action "Attempting to turn the UPS off:" "$UPSCTL" shutdown
message="The system is halted"
command=/sbin/poweroff
fi
APC PowerStack 250 почему-то всё равно ждёт ~200 секунд перед
отключением, на что halt совершенно не расcчитывал. Поэтому
успевает сработать /sbin/poweroff. Чтобы poweroff не отключал
питание от материнской платы, можно запретить загрузку модуля
apm в /etc/modules.conf:
alias apm null
Ещё полезно было бы добавить в пакет с nut прилагаемый патч,
иначе у меня powernet не работает. Проверял на APC Web/SNMP
Management Card (AP9606).
--
Григорий Баталов,
группа техподдержки
ОАО "Ковдорский ГОК"
[-- Attachment #2: nut-1.2.3-alt-oid_ambtemp.diff --]
[-- Type: text/plain, Size: 958 bytes --]
diff -ruN nut-1.2.3.orig/drivers/powernet.h nut-1.2.3/drivers/powernet.h
--- nut-1.2.3.orig/drivers/powernet.h 2003-07-02 17:48:22 +0400
+++ nut-1.2.3/drivers/powernet.h 2003-07-24 11:23:28 +0400
@@ -94,9 +94,6 @@
#define OID_GRACEDELAY ".1.3.6.1.4.1.318.1.1.1.5.2.10.0"
#define OID_RETDELAY ".1.3.6.1.4.1.318.1.1.1.5.2.9.0"
#define OID_LOBATTIME ".1.3.6.1.4.1.318.1.1.1.5.2.8.0"
-/* Environmental sensors (AP9612TH and others) */
-#define OID_AMBTEMP ".1.3.6.1.4.1.318.1.1.2.1.1.0"
-#define OID_AMBHUMID ".1.3.6.1.4.1.318.1.1.2.1.2.0"
#define PN_VAR_COMMUNITY "community"
#define PN_VAR_SDTYPE "sdtype"
@@ -236,8 +233,6 @@
PN_TYPE_TIME | PN_FLAG_OK },
{ INFO_LOBATTIME, FLAG_STRING | FLAG_RW, 3, OID_LOBATTIME, "",
PN_TYPE_TIME | PN_FLAG_OK },
- { INFO_AMBTEMP, 0, 0, OID_AMBTEMP, "", PN_FLAG_OK },
- { INFO_AMBHUMID, 0, 0, OID_AMBHUMID, "", PN_FLAG_OK },
/* instant commands. */
{ CMD_OFF, 0, OFF_DO, OID_OFF, "", PN_FLAG_OK },
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] nut and UPS shutdown
2003-07-28 8:17 ` Sergey Bolshakov
2003-07-29 11:16 ` Grigory Batalov
@ 2003-07-30 6:18 ` Grigory Batalov
1 sibling, 0 replies; 7+ messages in thread
From: Grigory Batalov @ 2003-07-30 6:18 UTC (permalink / raw)
To: community
On Mon, 28 Jul 2003 11:17:47 +0300
Sergey Bolshakov <s.bolshakov@sam-solutions.net> wrote:
> Вероятно, переносом в /lib. Буду признателен, если кто-то суммирует
> сказанное и перешлет мне либо в BTS.
Ещё я бы переместил service stop level у upsmon/upsd на 1 вниз,
чтобы upsd отключался раньше network (88 < 89 < 90).
Тогда заинтересованный пользователь мог бы добавить
такие строки в /etc/init.d/upsd :
stop)
stop
# See if this is a powerfail situation.
SNMPSET=/usr/bin/snmpset
if [ -x "$SNMPSET" -a -f /etc/killpower ]; then
"$SNMPSET" host community .1.3.6.1.4.1.318.1.1.4.5.2.1.4.5 i 60
"$SNMPSET" host community .1.3.6.1.4.1.318.1.1.4.4.2.1.3.5 i 6
fi
;;
Т.е. при использовании powernet и APC MasterSwitch таким
образом можно было бы отключать питание от сервера через
SNMP. Если не подвинуть stop level, то 'upsd stop' выполняется,
когда сеть уже недоступна.
--
Григорий Баталов,
группа техподдержки
ОАО "Ковдорский ГОК"
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2003-07-30 6:18 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-25 8:02 [Comm] nut and UPS shutdown Grigory Batalov
2003-07-25 9:29 ` Alexey Borovskoy
2003-07-28 7:15 ` Grigory Batalov
2003-07-28 8:15 ` Alexey Borovskoy
2003-07-28 8:17 ` Sergey Bolshakov
2003-07-29 11:16 ` Grigory Batalov
2003-07-30 6:18 ` Grigory Batalov
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git