Cron 任务:将 stdout 发送到 /var/log,将 stderr 发送到电子邮件

Cron 任务:将 stdout 发送到 /var/log,将 stderr 发送到电子邮件

我有一个每小时运行一次的 cron 作业,并提供类似于以下内容的输出(通过 stdout):

Found 1 batch jobs
{'job': 'update'}
Job 1 started at 2013-06-07 13:00:03.673683+00:00
Waiting for 1 batch jobs to complete
Job 1 completed at 2013-06-07 13:57:56+01:00

现在,这些都是有用的信息,但我并不特别希望每小时都收到电子邮件。该应用程序设置为将上述信息打印到 stdout,并将任何警告或错误打印到 stderr。是否可以将上述信息记录到文件(即 /var/log 某处),但将通过 stderr 发送的任何文本通过电子邮件发送给我?

答案1

只需使用“>> /var/log/whatever.log”重定向命令 stdout 输出

如果没有 stderr 输出,则 cron 不会发送邮件,如果有 stderr,您将收到一封电子邮件,因为 stderr 没有重定向到该文件。

相关内容