sendmail在crontab中不起作用

时间:2018-07-12 20:59:03

标签: shell unix cron sendmail

当我尝试从crontab执行脚本时遇到了问题,但是当我尝试手动执行时,它工作得很好。

Crontab文件

54 * * * * /opt/SP/home/osbadm/scripts/tmp1.sh 2>&1 

发送邮件功能

SUBJECT="test"
TO="to@gmail.com" (
echo "TO: $TO"
echo "MIME-Version: 1.0"
echo "Subject: $SUBJECT"
echo "Content-Type: text/html"
cat $EXTRACT_CST_HTML
) | /usr/sbin/sendmail -f from@gmail.com $TO

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

您不能在启动子外壳程序的(之前放置变量赋值。如果您将脚本粘贴到shellcheck.net中,它将告诉您:

  

SC1036:“(”在这里无效。您是否忘记了对其进行转义?

即使,即使可以,它也只会在子进程的环境中设置变量,在处理sendmail的参数时将不可见。因此,将该任务放在自己的行上。另外,here-doc是一种将多行输入传递到sendmail的简便方法。

TO="to@gmail.com"
(
echo "TO: $TO"
echo "MIME-Version: 1.0"
echo "Subject: $SUBJECT"
echo "Content-Type: text/html"
cat $EXTRACT_CST_HTML
) | /usr/sbin/sendmail -f from@gmail.com $TO