正如标题所示,我希望我的cron作业将STDOUT重定向到日志文件,并仅邮寄STDERR输出。如果您对如何解决这个问题有想法,或者让我了解一些现有技术,那将非常有帮助。
有关更多上下文,我正在使用github的备份实用工具创建github企业服务器的备份。 cron作业执行Shell脚本和according to their documentation,它将STDOUT重定向到日志文件,并生成带有STDERR输出的电子邮件。但是,根据我的理解,它将STDOUT和STDERR都重定向到日志文件。他们的例子cron:
[email protected]
0 * * * * /opt/backup-utils/bin/ghe-backup -v 1>>/opt/backup-utils/backup.log 2>&1
您正在将文件描述符1
(即stdout
附加到文件,然后将所有其他文件描述符转到它们的常规接收器:控制台(或捕获应用程序输出的任何内容)。
换句话说,您要附加所有stdout
(其中有一些)和stderr
(它们中没有),然后将它们与2>&1
组合在一起。
您真正想做的是
0 * * * * /opt/backup-utils/bin/ghe-backup -v >> /opt/backup-utils/backup.log 2>&1