我试图让 cron 作业在脚本执行后直接向我发送一封电子邮件,并将最后的日志放入电子邮件正文中
21 14 * * * /opt/anaconda/bin/python /Path/to/Script/script.py >> /Path/to/logfile/log.txt 2>&1 | mail -s "cronjob OK" "first@mail.x,second@mail.x"
我怎样才能做到这一点?我应该添加什么?
提前致谢。
最佳答案
您的脚本不会产生任何输出,因为您只是将其重定向到文件。
cron
无论如何都会通过电子邮件将任何输出发送给 cron 作业的所有者。在某些 cron
实现中,您可以使用 MAILTO
指定不同的地址。
MAILTO=first@mail.x,second@mail.x
21 14 * * * /opt/anaconda/bin/python /Path/to/Script/script.py 2>&1 | tee -a /Path/to/logfile/log.txt
tee
命令将标准输入的副本保存到文件(-a
表示追加而不是覆盖)和标准输出。
如果您需要对生成的消息进行更多控制(例如,如果 Cron Not Acceptable ,则使用不同的主题: header ),可以保留 tee
但将管道放回 mail
。
关于linux - 通过电子邮件正文中的日志获取 cronjob 脚本执行的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51325460/