Linux 使用电子邮件正文中的日志获取cronjob脚本执行日志

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" 我怎么能这么做?我应该补充什么 提前感谢。您的脚本没有生成任何输出,因为您刚刚将其重定

我试图让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,则使用不同的主题:header),则可以保留
tee
,但将管道放回
mail

您并不是在真正描述问题。但是,我认为最简单的方法是不将任何内容通过管道手动传输到文件/调用
邮件。只需将
MAILTO设置为=first@mail.x,second@mail.x
在cronjob行之前,Cron应该已经向您发送了任何输出。鉴于您的系统能够发送电子邮件。