我有一个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的实际调用可能有点时髦,我现在没办法测试它.
我希望这有帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。