
Tempo de leitura: 2 minutos
Shell Script que verifica se Home Assistant está offline e o reinicia automaticamente
Sou um entusiasta de automação residencial e utilizo o Home Assistant em uma máquina virtual VirtualBox com Ubuntu 22.04 como sistema hospedeiro. Recentemente, percebi que algumas automações não estavam funcionando conforme o esperado. Após investigar, constatei que ocasionalmente a interface do Home Assistant não estava acessível, embora o servidor (Ubuntu) estivesse online. Para solucionar esse problema, desenvolvi um script em Shell que verifica a disponibilidade da página do Home Assistant e, caso necessário, reinicia o serviço automaticamente.
Para implementar essa solução, primeiramente, criei um arquivo chamado ha.sh na pasta /bin. Para isso, execute o seguinte comando no terminal:
sudo nano /bin/ha.sh
Será solicitada a senha do usuário root do Ubuntu para prosseguir. Após abrir o editor, cole o seguinte código:
#!/bin/bash
# Verifica se o Home Assistant está respondendo
check_ha() {
local response=$(curl -Is http://localhost:8123 | head -n 1)
if [[ ! $response =~ "200 OK" ]]; then
return 1
fi
}
# Reinicia a máquina virtual que executa o Home Assistant
restart_vm() {
# Comando para reiniciar a máquina virtual, ajuste conforme necessário
vboxmanage controlvm HA_2024 reset
}
# Verifica se o Home Assistant está offline e reinicia a máquina virtual se necessário
if ! check_ha; then
echo "Home Assistant está offline. Reiniciando a máquina virtual..."
restart_vm
sleep 60 # Espera 60 segundos antes de verificar novamente
if ! check_ha; then
echo "Falha ao reiniciar a máquina virtual."
else
echo "Máquina virtual reiniciada com sucesso."
fi
else
echo "Home Assistant está online."
fi
(Após colar o código, digite Ctrl+S para salvar e Ctrl+X para sair do nano)
Para garantir que o arquivo ha.sh tenha as permissões adequadas, execute o seguinte comando:
sudo chmod 777 /bin/ha.sh
Além disso, é importante criar um arquivo de log (/home/server/logs/servidor.log) para registrar o horário e a data dos reinícios do site em caso de problemas. Você pode fazer isso com os seguintes comandos:
cd /home/server
mkdir logs
sudo nano servidor.log
Após editar o arquivo, pressione Ctrl+S para salvar e Ctrl+X para sair do editor.
Agora o nosso script já está pronto. Para executá-lo, vamos utilizar o seguinte comando:
bash /bin/ha.sh
O script verificará se o serviço está online (retornando código 200). Se não estiver, reiniciará o Home Assistant.
Para agendar a execução automática do script, usaremos o CRON. Digite o seguinte comando:
crontab -e
Se for sua primeira vez, escolha o editor de sua preferência (por exemplo, nano).
No arquivo aberto, adicione a seguinte linha à última linha para executar o script a cada minuto:
*/1 * * * * bash /bin/ha.sh
Isso significa que o script será executado a cada minuto.
Acabamos de configurar o sistema para monitorar e reiniciar o Home Assistant automaticamente.
Se tiver dúvidas ou enfrentar problemas, deixe um comentário ou entre em contato.
Publicidade
📢 Quer ficar por dentro de todas as novidades do nosso blog? Não perca os últimos artigos, dicas valiosas e informações relevantes!
Junte-se a nós nas redes sociais para receber em primeira mão:
- Artigos exclusivos;
- Dicas práticas;
- Ofertas especiais e descontos exclusivos para nossos seguidores.
Não vamos inundar sua caixa de entrada com newsletters! Simplesmente nos siga em uma de nossas redes sociais para garantir que você não perca nenhum conteúdo interessante. Estamos ansiosos para tê-lo(a) conosco! 🚀