* [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