La salida cron no funciona

La salida cron no funciona

Necesito ayuda para resolver esto. Tengo el siguiente script: /root/eximqueue.sh con los derechos +x adecuados, 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

Luego configuré el cron, revisé mis crons (crontab -l) y está ahí:

*/5 * * * * /bin/sh /root/eximqueue.sh

Revisé mis registros cron

grep eximqueue /var/log/cron

...y está ejecutándose (sólo algunos ejemplos):

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)

¡El problema es que no recibo ningún correo electrónico del script! Sin embargo, si lo ejecuto directamente, funciona perfectamente y recibo el correo electrónico. ¿Ideas?

Respuesta1

El problema es que cuando un script comienza desde cron, la RUTA es mucho más corta que cuando lo ejecutas directamente desde bash.

Simplemente reemplace las llamadas al programa por la ruta completa hacia ellas. /usr/sbin/eximen lugar de eximpor ejemplo (o donde haya instalado exim).

información relacionada