我有以下脚本
#!/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
;第三,我会重新格式化该文件,因为它看起来很混乱。
我还建议检查其他日志文件,因为该邮件未发送的原因有很多,如果脚本中的任何内容失败,请尝试向该脚本添加日志记录支持。