ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [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