Olá, tentei implantar esse script na crontab mas o processo da erro, pode explicar o que há de errado?
!/bin/bash
Script para monitorar processo.
Para que a função de e-mail funcione, você deverá ter o SMTP ativo no servidor.
Defina neste campo, o nome do processo a ser filtrado.
PROCESSO=service.traccar
Intervalo que será feita a checagem (em segundos).
INTERVALO=10
while true; do
Número de cópias do processo rodando - Explicação.
OCORRENCIAS=`ps ax | grep $PROCESSO | grep -v grep| wc -l`
if [ $OCORRENCIAS -eq 0 ]; then
Se o número de processos rodando é 0, executa novamente a aplicação e notifica a área de TI - Explicação
# Caso sua aplicação não esteja no /etc/init.d/ altere o caminho de forma que lhe atenda.
sudo systemctl restart traccar.service
tail -n 20 /var/log/log_do_processo.log |mail -s "Alerta! O processo processo foi reiniciado" seuemail@suaempresa.com
fi
Aguarda o intervalo especificado na variável e executa novamente o script.
sleep $INTERVALO
done
Fim do Script
- make file 'monitor' save in /bin (give permissions)
#!/bin/bash
service=$@
systemctl -q is-active "$service.service"
status=$?
if [ "$status" == 0 ]; then
echo "OK"
else
systemctl start "$service.service"
fi
- Add a cronjob
crontab -e
*/5 * * * * monitor traccar > /dev/null 2>&1
Hola, consulta.... en vez de "$service.service" deberia ir "traccar.service"?
gracias.
essa foi a solução que encontrei
coloquei um arquivo "monitor" na pasta opt
#!/bin/bash
service=$@
systemctl -q is-active traccar.service
status=$?
if [ "$status" == 0 ]; then
echo "OK"
else
systemctl restart traccar.service
fi
Add a cronjob
crontab -e
*/5 * * * * /opt/monitor
Olá, tentei implantar esse script na crontab mas o processo da erro, pode explicar o que há de errado?