Shell Script que verifica se home assistant está offline e reinicia automaticamente

Olá Pessoal,

Desde que mudei para o Servidor Ubuntu + Docker, notei que as vezes a página de acesso do Home Assistant caia, entretanto o servidor estava online. Eu ainda não sei o motivo do problema, mas como alternativa, eu acabei de fazer um shell script para verificar se a página do Home Assistant está com acesso, caso não esteja ele reinicia. Instalei este script no próprio servidor que está o Home Assistant.

Eu aprendi a fazer usando este tutorial: https://www.alura.com.br/artigos/automatizando-tarefas-com-shell-script (Tem explicações mais detalhadas, eu vou resumir aqui apenas com os códigos).

Primeiro, criar um arquivo .sh na pasta /bin (digitar no terminal):
#sudo nano /bin/ha.sh
Irá pedir a senha do root

Assim que abrir o editor, colar o código:

#!/bin/bash

codigo_http=$(curl --write-out %{http_code} --silent --output /dev/null IP_DO_SEU_HA:8123 --max-time 10)

if [ $codigo_http -ne 200 ]; then

    echo "Houve um problema com o servidor Home Assistant, tentando reiniciá-lo  $(date +%F\ %T)" >> /home/server/logs/servidor.log

    docker restart homeassistant

fi

(Após incluir o código, digite Ctrl+S para salvar e Ctrl+X para sair do nano)

Agora tem que alterar a permissão do arquivo ha.sh criado:
sudo chmod 777 /bin/ha.sh

Criar um arquivo de log (/home/server/logs/servidor.log), para quando tiver problema no site, ele vai gravar o dia e hora de quando foi reiniciado. No meu caso criei a pasta e o arquivo de log:
cd /home/server
mkdir logs
sudo nano servidor.log (digita Ctrl+S e Ctrl+X)

Seu script já está criado, para rodar ele:
bash /bin/ha.sh
No caso ele nao ira fazer nada se o serviço estiver online (significa que retorna 200), se estiver diferente de 200 ele reinicia o home assistant.

, agora para agendar e fazer ele rodar automaticamente, vamos usar o CRON, digita:
crontab -e
Como nunca tinha aberto apareceu qual editor gostaria de usar, eu usei o nano (1)

Assim que abrir o editor eu fui até a ultima linha e adicione:
*/1 * * * * bash /bin/ha.sh

Esta linha significa que vai rodar o script a cada 1 minuto.

Bom, eu acabei de fazer e não sei se funciona ainda hehehe … acho que vai quebrar um galho até encontrar o problema, não deixando o home assistant offline, espero que ajude quem tiver com problema do ha ficar caindo!

Valeu!

Quando cai a energia meu Nabucasa as vezes da pau no retorno da energia (O HA funciona normal só perdo o acesso pelo Nabucasa)…se eu colocar o endereço do Nabucasa ao invés do IP do HA será que funciona?

Olá amigo, aqui em 2022 e tendo problemas com paradas repentinas no HA, no meu caso usando Proxmox e com o OVA instalado. O problema consiste em que o host reinicia e trava antes de chegar a tela de inicio do HA.

Peguei seu exemplo e fiz algumas alterações para que o Proxmox rode, no meu caso eu indiquei o reset da VM com o comando qm reset . Assim como você não sei se irá funcionar, sei que ele tá funcionando como agendado, que ele gera o log, mas não sei se ele identificará a máquina como off quando ela travar, e se com a máquina travada o proxmox conseguirá fazer o reset. Vou aguardar, obrigado.