cron 作业不会执行脚本

cron 作业不会执行脚本

我有以下脚本

#!/bin/sh

tail -fn1 /app/agile/agile931/agileDomain/servers/01mustgagl01.natusmed.natus.com-AgileServer/logs/agileDomain.log| \
while read line ; do
        echo "$line" | grep "OutOfMemory"
        if [ $? = 0 ]
        then
                ##--Mail the Report--
(
  echo "To: [email protected]"
  echo "From: AGILE ADMIN"
  echo "Content-Type: text/html; "
  echo "Subject: OOM Alert"
  echo
  ) | /usr/lib/sendmail -t

    fi
done

 

$ ./OOMERROR.sh

exit

手动执行时它运行良好,但无法与下面的 cron 作业一起运行。

0 3 * * * agile /path/to/script/OOMERROR.sh

系统日志显示一个条目并且没有错误,但我不会收到电子邮件。

答案1

您没有将执行作业的用户放在作业行中。您可以通过在终端中cron运行来查看正确的格式。man 5 crontab

每个用户都有自己单独的 crontab(cron作业表)。要编辑agile的 crontab,请打开终端并运行:

su agile
crontab -e

这将agile在文本编辑器中打开 的 crontab。插入cron上面的作业行(不带用户名):

0 3 * * * /path/to/script/OOMERROR.sh

现在保存文件并退出。

答案2

#首先,你在 sha-bang 中漏掉了 a 。

其次,我建议放置可执行文件的完整路径agile;第三,我会重新格式化该文件,因为它看起来很混乱。

我还建议检查其他日志文件,因为该邮件未发送的原因有很多,如果脚本中的任何内容失败,请尝试向该脚本添加日志记录支持。

相关内容