在Linux或类似Unix的系统上通过Crontab命令禁用电子邮件警报
时间:2020-01-09 10:38:12 来源:igfitidea点击:
如何禁用crontab发送的电子邮件警报?
当我的作业被执行并且作业无法正常运行时,它将向root发送一封电子邮件。
为什么我会收到来自cron的电子邮件到我的root帐户?
如何在Linux或类似Unix的系统上禁用cron作业发送的电子邮件警报?
crontab命令用于为单个用户维护crontab文件。
默认情况下,命令或脚本(如果产生的话)的输出将通过电子邮件发送到您的本地电子邮件帐户。
要停止接收来自crontab的电子邮件输出,您需要在crontab条目的末尾追加以下字符串。
Cron作业可防止发送错误和输出
为防止发送错误和输出,请在每个cron作业的行末添加以下任一内容,以将输出重定向到/dev/null。
保存并关闭文件。
有关更多信息,请参见将STDOUT和STDERR重定向为null和" BASH Shell重定向stderr到stdout(将stderr重定向到File)"以禁止输出。
设置MAILTO变量以阻止cron守护程序发送电子邮件
另一种选择是在crontab文件或shell脚本的开始处设置MAILTO =""变量。
这也将禁用电子邮件警报。
编辑/打开您的Cron作业:
$ crontab -e
在文件顶部,输入:
MAILTO=""
当然,如果配置了Postfix等电子邮件服务器,我们也可以重定向电子邮件:
MAILTO="[email protected]"
保存并关闭文件。
我们可以根据需要混合它们。
例如:
MAILTO="backup.admin@domain-here" @daily /scripts/backup.sh MAILTO="storage.admin@domain-here" * 45 * * * /scripts/test-raid-array.sh
另一个例子:
@weekly /scripts/containers-backup >/dev/null 2>&1 MAILTO="[email protected]" @daily /scripts/test-raid-array.sh MAILTO="" @monthly /path/to/script/logs.sh > /var/log/monthly.log