Existe uma maneira antiga mas comprovada: use um modem analógico antigo. Aqui está como
- Conecte o modem ao servidor via porta serial (por exemplo, ttyS0)
- Conecte a fonte de alimentação do modem não no no-break, mas diretamente na rede elétrica
- NÃO conecte nada na linha telefônica do modem
Agora faça poll do modem a cada poucos segundos enviando ATZ[Enter]
e espere OK[Enter]
- se o modem não atender, você pode supor que ele não tem energia, ou seja, o no-break está na bateria.
Editar
O ponto principal é que, se a conexão com a Internet cair por algum outro motivo, o servidor não será desativado , como deveria ser.
Editar 2
Dos comentários:
- É claro que você deve manter algum estado de uma verificação para a próxima, apenas desligando depois que N cheques falharem. Eu não mencionei isso, pois é válido para todas as verificações possíveis, não apenas para o modem
- A diferença entre usar o modem e usar qualquer coisa que tenha a ver com a rede é que a perda transitória de conectividade de rede ocorrerá: Você não quer se incomodar com "Login desabilitado, servidor em USV ", se você reinicializar um switch ou reconfigurar uma VLAN. Na minha experiência, a linha serial é tão robusta quanto possível.