você está usando um apc ups? Se sim, olhe para o apcupsd, é ótimo e pode fazer isso e muitas outras coisas semelhantes com facilidade.
como diz o bmdan, é muito improvável que seus altos não façam isso.
Eu quero desligar meu servidor linux logo após a falta de energia enquanto ele está na UPS. O UPS funciona como por mais 30 minutos. Eu sei que alguns UPSs podem desligar os servidores automaticamente, mas este não é o meu caso agora.
Então eu tenho em mente fazer ping no roteador (ou um PC na rede) e se o ping falhar, isso significa falta de energia (pode haver um problema com a rede também, mas não importa) e o script será executado
"#shutdown now"
Como posso fazer isso?
Editar: A UPS está alimentando dois pequenos servidores, então não posso usar a porta serial (pelo menos para os dois ao mesmo tempo). Nosso motor em Chipre destruído por uma explosão assim até eu obter UPS para cada servidor eu preciso de uma solução temporária. É por isso que estou perguntando isso.
você está usando um apc ups? Se sim, olhe para o apcupsd, é ótimo e pode fazer isso e muitas outras coisas semelhantes com facilidade.
como diz o bmdan, é muito improvável que seus altos não façam isso.
Muitos sistemas Linux incluem o pacote watchdog . Este pacote irá observar determinadas condições executando testes e, por padrão, reinicializará o sistema se houver uma falha.
Com a opção repair-binary você pode dizer para executar algo como shutdown -h
em vez de reinicializar. Watchdog inclui um teste de ping por padrão.
Monit pode fazer isso e seria preferível ao cron.
Tente uma linha de configuração como:
Check host router with address 192.168.1.1
if failed icmp type echo with timeout 120 seconds
then exec "/sbin/shutdown now"
alert root@localhost
Realmente a melhor solução aqui seria APCUPSD, você deve obter algo que tenha recursos de monitoramento (USB, Serial, Ethernet).
No Ubuntu eu uso mii-tool
para verificar se o link da LAN está OK
Se o link não estiver OK por 3 vezes, eu desativo o sistema
Depois que a energia é restaurada eu tenho linksys com firmware openwrt para enviar wake on lan para o meu sistema.
crie um bashsscript e adicione-o a chron:
$1 = "some.host.ip.address";
if ! ping -c 1 -w 5 "$1" &>/dev/null ; then
shutdown -h now
fi
Tenha em mente que, se o seu roteador falhar em vez do seu servidor, você estará inoperante ...
Se você estiver usando o NUT (Network UPS Tool) para monitorar seu servidor, seus clientes poderão fazer isso. O host ao qual o no-break está conectado deve ser o último a descer. O servidor NUT é executado no UNIX ou Linux, mas um cliente está disponível para o Windows.
Existe uma opção para executar um script em vários eventos (com atrasos, se desejado). No seu caso, você gostaria de acionar o desligamento em uma interrupção de alguns segundos. Se você tiver o wake on LAN você pode acionar um evento de ativação algum tempo depois que a energia for restaurada.
Com base no problema de dois servidores e um no-break, essa solução agora fica muito mais simples (e mais robusta!). Provavelmente existem maneiras melhores de fazer isso, mas minha abordagem seria adicionar um usuário que possa executar sudo /sbin/shutdown -h now
na caixa não conectada ao no-break e, em seguida, modificar a entrada pf:
em / etc / inittab na máquina # 1 para (tentar) criar uma conexão ssh para a máquina 2 e executar esse comando antes de concluir seu próprio desligamento.
Implementação completa para duas máquinas, onde Volta (com conexão serial UPS) e Nulla (sem conexão UPS) são os nomes das duas máquinas:
/etc/sudoers
no Nulla: Defaults:remoteshutdown !requiretty remoteshutdown ALL=(ALL) NOPASSWD: /sbin/shutdown
/etc/inittab
no Volta: pf::powerfail:/usr/local/sbin/powerdown
/usr/local/sbin/powerdown
(chmod 700) no Volta: #!/bin/bash # Run in the background lest we block on it and thus wait too long to schedule our own shutdown. # Remember to connect by hand once and accept Nulla's host key as root /usr/bin/ssh remoteshutdown@Nulla 'sudo /sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"' & #Shut ourselves down /sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
Como eu disse, provavelmente há outra maneira de fazer isso, mas esta é a solução que posso escrever sem ter que baixar nada. ;)
Tags linux