Atualmente, quando um dos dois UPS morre, o evento doshutdown é acionado e executa o script padrão via apccontrol . O script doshutdown ignora o segundo no-break, pois eles não estão conectados a eventos e prossegue normalmente com o desligamento.
Para que os eventos doshutdown estejam um pouco conectados, as duas instâncias do apcupsd precisam de um arquivo de configuração especificamente customizado. A diferença residirá no diretório a partir do qual os scripts de eventos devem ser executados.
Principais propriedades dos primeiros ups, em /etc/apcupsd/apcupsd.ups0.conf
SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events
E para os ups1, em /etc/apcupsd/apcupsd.ups1.conf
SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events
Cada scriptdir deve obter uma cópia dos scripts padrão.
Queremos personalizar o script doshutdown , que não desligará diretamente a máquina, mas deverá verificar se o outro no-break ainda está ligado ou está no modo de desligamento.
Na parte superior do script doshutdown , poderíamos adicionar algo como
para ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
para ups1
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
o status 99 tem um significado especial, que diz ao apccontrol para interromper a ação em andamento. As cinco linhas verificam se o outro arquivo no-break foi criado; se não , o arquivo inativo é criado para os altos inativos e sai. Se sim , o que significa que o outro no-break está inoperante, este também está desativado, portanto, o script deve continuar e desligar a máquina.
Os arquivos /tmp/usp[01].is.down
indicam se os ups [01] estão atualmente inativos.
Importante: o script init.d start do apcupsd deve remover esses arquivos, se eles foram criados em uma sessão anterior:
rm -f /tmp/usp[01].is.down
Finalmente, os diretórios criados acima, / etc / apcupsd / ups [01], devem ter acesso ao usuário apcupsd (ou a qualquer usuário relevante que esteja executando as instâncias).
chown -R apcupsd /etc/apcupsd/ups[01]
Por favor, dê uma olhada na documentação detalhada .
editar fixo os /tmp/ups[01].is.down
nomes, o .is
estava faltando.
Olhe NUT. Ele lida bem com isso. Defina o número de fontes de alimentação de cada no-break e o número de fontes de alimentação necessárias. O desligamento não será acionado enquanto houver fontes de alimentação suficientes fora do no-break.
fonte