Crontab,想要将错误邮寄给我自己并将日志输出记录在单独的文件中

时间:2014-06-10 16:43:50

标签: logging cron crontab error-log

我对crontab很新,我今天才开始使用它。

我想要做的是相当简单的(我想。)我希望我的脚本可能导致的所有错误都邮寄给我自己,所有输出(无论是否成功)都要单独登录日志文件。

目前,它正在记录输出,但是我不知道从哪里开始让它通过电子邮件发送我的错误。

这是我到目前为止的代码:

MAILTO=mymail@myaddress.ca

# m h dom mon dow   command

0,15,30,45 * * * * /path/to/script >> /path/to/log/$(date +\%m\%d\%H\%M)_f.log 2>&1

谢谢!

3 个答案:

答案 0 :(得分:1)

我建议你将脚本封装在另一个脚本中。 您将此新脚本添加到cron

encap.sh内容:

#call your script
script.sh > /tmp/temp$$.log

#analyze results using /tmp/temp$$.log or $?

#send mail depending on results

#Log results
cat /tmp/temp$$.log >> /path/to/log/$(date +\%m\%d\%H\%M)_f.log
#or 
mv /tmp/temp$$.log > /path/to/log/$(date +\%m\%d\%H\%M)_f.log

答案 1 :(得分:0)

尝试mailx。您需要传递〜/ .mozilla / firefox / xxxxx.default目录才能正常工作。

#! /bin/bash

MACHINE=$(hostname)
CURRENT_TIME=$(date +%Y-%m-%d_%H-%M-%S)                                                                                                                                                                                          

mailx -v -s "BACKUP FAILED" -S ssl-verify=ignore -S smtp-auth=login -S smtp=smtp://smtp.server.com:587 -S from=name@server.com -S smtp-auth-user=name@server.com -S smtp-auth-password=namesecret -S ssl-verify=ignore -S nss-config-dir=/home/name/.mozilla/firefox/xxxxxxx.default/ name@server.com << EOF                                   
Hello,                                                                                                                                                                                                                           

This message was sent by an automatic script. Please do not reply.                                                                                                                                                               

If you are reading this, it means that the machine $MACHINE could not connect to the External Backup Server.                                                                                                                     

Please check this situation.                                                                                                                                                                                                     

Regards,

The $MACHINE Administrator.
EOF

答案 2 :(得分:0)

或者只是

* * * * * /.../script 2>&1 | tee script.log