Preciso de ajuda para descobrir isso. Eu tenho o seguinte script - /root/eximqueue.sh com os direitos +x apropriados, etc:
#!/bin/bash
######### Edit here ##########
[email protected] # Set this to your email id to receive alerts on mail queue
_limit=20 # Set the limit here
##############################
clear;
_result="/tmp/eximqueue.txt"
_queue="`exim -bpc`"
if [ "$_queue" -ge "$_limit" ]; then
echo "Current queue is: $_queue" > $_result
echo "Summary of Mail queue" >> $_result
echo "`exim -bp | exiqsumm`" >> $_result
mail -s "Number of mails on `hostname` : $_queue" $_mail_user < $_result
cat $_result
_message_id="`exiqgrep -i -f [email protected] | xargs exim -M`"
fi
rm -f $_result
Em seguida, configurei o cron, verifiquei meus crons (crontab -l) e está lá:
*/5 * * * * /bin/sh /root/eximqueue.sh
Verifiquei meus registros do cron
grep eximqueue /var/log/cron
... e está funcionando (apenas alguns, por exemplo):
Oct 12 14:00:01 osi CROND[28191]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:05:01 osi CROND[30877]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:10:01 osi CROND[893]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:15:01 osi CROND[4429]: (root) CMD (/bin/sh /root/eximqueue.sh)
O problema é que não estou recebendo nenhum e-mail do script! No entanto, se eu executá-lo diretamente, ele funciona perfeitamente e recebo o e-mail. Ideias?
Responder1
O problema é que quando um script é iniciado no cron, o PATH é muito mais curto do que quando você o executa diretamente no bash.
Basta substituir as chamadas do programa pelo caminho completo para elas. /usr/sbin/exim
em vez de, exim
por exemplo (ou onde você instalou o exim).