我有一个 cron 作业,我想将其输出发送到 /dev/null 但如果发生错误,它应该发送一封电子邮件。

否则我每天都会收到一封关于 cron 输出的电子邮件,我很难看到错误何时发生。

最佳答案

怎么样

59 23 * * * { tmpFile=/tmp/yourCmdErrs.$$ ; export tmpFile ; yourCommand > /dev/null 2>${tmpFile}; if [ -s ${tmpFile} ] ; then mailx -s"errors in yourCommand" < ${tmpFile} ; /bin/rm ${tmpFile} ; fi ; }

炸了就是
# set whatevery your time/days are # 59 23 * * *
# my superstition to use open and closing # { }
# set a tmpFile var # tmpFile=/tmp/yourCmdErrs.$$ ; export tmpFile ;
# run yourCmd save STDERR to file # yourCommand > /dev/null 2>${tmpFile};
# check if tmpFile has anything in it # if [ -s ${tmpFile} ] ; then
# obvious, hopefully # mailx -s"errors in yourCommand" < ${tmpFile}
#  cleanup tmpFile # /bin/rm ${tmpFile} ;
#  fi
# note that closing ';' is a must when using {} pairs ; }

对 mail/mailx 的实际调用可能有点奇怪,我现在没有办法测试它。

我希望这有帮助。

关于linux - 您如何将 cron 输出发送到 null 并将错误发送到电子邮件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5972514/

10-16 06:39