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?