我有几个 cron 作业在运行(在/etc/cron.daily
、、等中),并通过电子邮件发送结果。如果作业成功,我想停止发送这些电子邮件,并且只在出错时发送电子邮件(我知道可以通过重定向到来完成/etc/cron.hourly
)。我知道如何对单个 cron 作业执行此操作,但这些特殊目录中的脚本是使用运行的。抑制这些脚本的成功电子邮件的最佳方法是什么?/etc/cron.weekly
root@localhost
stdout
/dev/null
run-parts
答案1
您可能想要使用程序的一个包装器,当出现问题时输出所有内容,否则吞掉标准输出。
一个例子可能是慢性的,只需在“run-parts”前面加上“cronic”即可,例如:
# m h dom mon dow user command
17 * * * * root cd / && /etc/cronic run-parts --report /etc/cron.hourly
哪里/etc/cronic
是可执行 cronic 脚本的地方,可从上述网站下载。
答案2
您应该发送成功的电子邮件通知/dev/null
以便它们消失。
但你想看到不成功电子邮件通知。
这意味着你需要先直接stdout
前往/dev/null
,然后再直接/dev/stderr
前往stdout
尝试将 cronjobs 的重定向部分更改为
>/dev/null 2>&1
看此链接