Shell Script para iniciar o Mysql Server se não estiver em execução

1

Eu escrevi um script shell para iniciar o servidor mysql & envie um email para o usuário admin se ele for reiniciado via shell script. O que eu estou enfrentando um problema se eu executar este script de shell no terminal é funcionar perfeitamente & Se o mesmo script for executado por meio do cronjob, ele enviará apenas o e-mail para o usuário & problema permanece o mesmo. Este problema está relacionado com permissão & como posso resolver isso?

Shell Script --------

#!/bin/bash
EMAIL="[email protected]"
SERVICE='mysql'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
   echo "$SERVICE service running, everything is fine"
else
   echo "$SERVICE is not running"
   /etc/init.d/mysql start
cat <<EOF | msmtp -a gmail $EMAIL
Subject: "Alert (Test Server) : Mysql Service is not running (Manually Restarted)"
Mysql Server Restarted at: 'date'
EOF
EXIT

Estou usando o msmtp para enviar e-mails para o usuário no ubuntu 12.04 Server.

    
por user103373 19.09.2012 / 07:23

2 respostas

0

Parece ser um problema de ambiente, use o caminho completo para binário, como o msmtp deve resolver o seu problema.

Seu script tem o mesmo papel que / usr / bin / mysqld_safe, talvez seja melhor para você cortar mysqld_safe para lhe enviar um e-mail.

    
por 19.09.2012 / 10:30
0

Só que, mas você pode querer ver algo como monit . Ele é especificamente projetado apenas para esse propósito.

De qualquer forma, como você configurou o cronjob? Você criou um arquivo em /etc/cron.d/ que você criou usando crontab -e usando sua conta de usuário normal ou o quê? Estou tentado a adivinhar que você configurou seu cronjob como um usuário sem privilégios suficientes.

    
por 19.09.2012 / 07:46