如何使cron发送错误信息邮件
 
都知道如果设置了 MAILTO,cron就会将任务的输出发送给指定邮箱。但如果只想接到错误报警邮件 -- 即任务正常执行时不发送,只在出错时发送 -- 应该怎么实现呢?
方法很简单,指定该任务的标准输出为 /dev/null 就可以了。
[email protected]
0 1 * * 1  script.sh > /dev/null
 
原理: MAILTO默认将任务的所有输出发送给指定邮箱。熟悉linux/unix的朋友知道,默认输出包括标准输出和错误输出。所以MAILTO相当于把标准输出和错误输出都定向到邮件服务。
 
当我们人为将标准输出定向到/dev/null, 正常执行的时候,自然不会启用邮件服务,而只在错误输出有内容的时候才启动邮件服务。