Linux 使用电子邮件正文中的日志获取cronjob脚本执行日志
我试图让cron作业在脚本执行后直接向我发送电子邮件,并将最后的日志记录到电子邮件正文中Linux 使用电子邮件正文中的日志获取cronjob脚本执行日志,linux,shell,email,cron,Linux,Shell,Email,Cron,我试图让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" 我怎么能这么做?我应该补充什么 提前感谢。您的脚本没有生成任何输出,因为您刚刚将其重定
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,则使用不同的主题:header),则可以保留
tee
,但将管道放回mail
您并不是在真正描述问题。但是,我认为最简单的方法是不将任何内容通过管道手动传输到文件/调用邮件。只需将MAILTO设置为=first@mail.x,second@mail.x
在cronjob行之前,Cron应该已经向您发送了任何输出。鉴于您的系统能够发送电子邮件。