O comando Mailx ou mail não inclui o corpo quando acionado via crontab

O comando Mailx ou mail não inclui o corpo quando acionado via crontab

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

informação relacionada