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 são conectados a eventos e continuam normalmente com o desligamento.
Para que os eventos doshutdown sejam um pouco conectados, as duas instâncias do apcupsd precisam de um arquivo de configuração especificamente personalizado. A diferença residirá no diretório a partir do qual os scripts de eventos devem ser executados.
Principais propriedades dos primeiros passos, 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 o 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 terá que verificar se a outra UPS ainda está ligada ou se está no modo de desligamento.
No topo 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 o 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 apccontrol para interromper a ação em andamento. As cinco linhas verificam se o outro arquivo abaixo do no-break foi criado; se não , o down-file é criado para os ups sendo desativados e sai. Se yes , o que significa que o outro no-break está inoperante, este também está diminuindo, portanto o script deve continuar e desligar a máquina.
Os arquivos /tmp/usp[01].is.down
indicam se o ups [01] está desativado no momento.
Importante: o script init.d start do apcupsd deve remover esses arquivos, caso tenham sido criados em uma sessão anterior:
rm -f /tmp/usp[01].is.down
Finalmente, os diretórios criados acima, / etc / apcupsd / ups [01] devem receber acesso ao usuário apcupsd (ou a qualquer usuário relevante executando as instâncias).
chown -R apcupsd /etc/apcupsd/ups[01]
Por favor, dê uma olhada na documentação detalhada .
edit corrigiu os nomes /tmp/ups[01].is.down
, faltou o .is
.