Criei um script que verifica o processo do servidor apache e envia um email caso o processo esteja fora do ar.
apache_down=`service httpd status | grep "inactive (dead)"`
echo “$apache_down" | mailx -s “APACHE_DOWN_`hostname`” [email protected]
O script funciona bem quando executado manualmente - ele envia o email com o assunto e corpo corretos "$apache_down".
Porém quando coloco no crontab, ele envia o email apenas com o assunto e não com o corpo.
*5 * * * * script.sh >/dev/null 2>&1
O corpo está vazio com apenas "" . Eu usei mail -s e mesmo resultado. Isso é um problema com meu script ou configuração do crontab ou mailx.
Responder1
Verifica a$PATHvariável se estiver configurada corretamente para executar comandos, caso contrário, defina-a em seu script ou geralmente para cron. Se $PATH não estiver configurado corretamente para binário, então,serviçoO comando não será executado ou você terá que adicioná-lo manualmente, executando-o como/usr/sbin/serviço
Tente também adicionar a verificação se a variável tem alguma saída dentro do script ...
if [[ -n "$apache_down" ]]
then
echo “$apache_down" | mailx -s “APACHE_DOWN_`hostname`” [email protected]
else
echo "apache running fine" | mailx -s “APACHE_Running_`hostname`” [email protected]
fi