[Nut-upsuser] Best practice to shutdown hosts which has not NUT via upssched

Roger Price roger at rogerprice.org
Wed Jul 13 08:49:21 UTC 2016


On Wed, 13 Jul 2016, Dmitri Stepanov wrote:

> Hi
>
>    I need to shutdown a number of hosts which has not NUT from one which has it.
>
>    I tried to do it from upssched script (after upssched's timer) like this:
>
> case $1 in
>         earlyshutdown)
>                 logger -t upssched-cmd "Early shutdown is started"
>                 /bin/sh /usr/local/sbin/shutdown-all-hosts.sh
>                 /usr/local/sbin/upsmon -c fsd
>                 ;;
> esac
>
>    shutdown-all-hosts.sh contains:
> # Linux hosts
> HOSTLIST="sim iogate br"
> for host in $HOSTLIST
> do
> ...
>      ssh $host halt -p
> ...
> done
> # Windows hosts
> ssh shut at com "shutdown -s -t 0"
>
>    shutdown-all-hosts.sh works fine if it runned manually.
>    But it does not work even if I insert sleep 30 sec before upsmon -c fsd

When you say "it does not work", what are the symptoms? Does 
shutdown-all-hosts.sh get called?

>    Also I read somewhere that it is not a good idea to shutdown other hosts from the CMDSCRIPT.

The User Manual chapter 7.2:

<< It’s not a good idea to call your system’s shutdown routine directly 
from the CMDSCRIPT, since there’s no synchronization with the slave 
systems hooked to the same UPS. FSD is the master’s way of saying "we’re 
shutting down now like it or not, so you’d better get ready". >> 
http://networkupstools.org/docs/user-manual.chunked/ar01s07.html

If you want to shutdown your slave systems siom, iogate and br from the 
CMDSCRIPT, you will need to reproduce the NUT protocol of "slaves first", 
then the master.  Your current protocol does not check that the slaves are 
indeed shutting down.

Roger


More information about the Nut-upsuser mailing list