Olá pessoal, mas uma vez peço ajuda a vocês. Eu tenho um pequeno servidor aqui em casa e gostaria de fazer uma coisa muito simples que seria enviar um email para mim mesmo caso o servidor seja reiniciado.
Eu escrevi um script bash bem simples e ele funciona quando executo no terminal perfeitamente, porém o passo agora seria colocar esse script em algum lugar pro sistema fazer isso de forma automatica. Já pesquisei bastante na internet e achei várias soluções, mas não sei pq NENHUMA funciona.
Já tentei pelo método do CRONTAB, já tentei configurando o arquivo /etc/rc0.d, já tentei editando o systemctl meuscript.service…
O correto é fazer com arquivo .service (se o ubuntu server usa o systemd). É meio complicado pois tem várias opções. Já fiz algo parecido com o controlador de ventoinha. Uma vez que fez, vai parecer fácil hehehe (cria o arquivo, usa systemctl enable) Só tem o detalhe que seu script precisa usar a NET e bash, pode ser que systemd execute-o antes da hora. Trave a inicilalização do seu serviço apenas depois da NET online ou coloque um sleep no teu script pra garantir.
veja as permissões necessárias para rodar seu script, o padrão é rodar como usuário “root”. Confira o caminho dos comandos que você está usando. Veja se as variáveis de ambiente disponíveis na linha de comando (que o seu script usa) também estão disponíveis quando roda de forma automática. Geralmente na execução automática nao é carregado o profile do bash.
Por conta disso eu tinha feito meu programinha em C e compilei pra poder rodar ele sem problemas, mas mesmo assim o systemd rodava ele antes de carregarcompletamente o módulo da placa de vídeo, então na primeira execução sempre dava um log de erro do meu serviço. A dica é usar logs de debug para verificar o que está acontecendo.
Então, não manjo muito disso… mas acredito que simplesmente gerar saída de texto no seu script vai gerar entradas de log do systemd
echo "Iniciando script"
blablalalb
echo "valor da variavel var = $var"
blalbalblab
echo "antes de enviar o email"
comando_de_enviar_o_email
echo "depois de enviar o email"
Salva o script systemctl start meuservico ------ Inicie o serviço systemctl status -n50 meuserviço ----- Verifique as saídas de log que gerou na inicialização.