Cron 输出不起作用

Cron 输出不起作用

需要帮助来解决这个问题。我有以下脚本 - /root/eximqueue.sh,具有适当的 +x 权限等:

#!/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

然后我设置了 cron,检查了我的 cron(crontab -l)并且它在那里:

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

检查了我的 cron 日志

grep eximqueue /var/log/cron

...并且它正在运行(仅举几个例子):

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)

问题是,我没有从脚本中收到任何电子邮件!但是,如果我直接运行它 - 它会完美运行,我会收到电子邮件。有什么想法吗?

答案1

问题是,当脚本从 cron 启动时,PATH 比直接从 bash 运行脚本时短得多。

只需将对程序的调用替换为它们的完整路径。/usr/sbin/exim而不是exim例如(或您安装 exim 的位置)。

相关内容