我可以更改cron作业的默认邮件收件人吗?


12

我相信,如果cronjob有任何输出,它将被邮寄给该工作所属的用户。我认为您也可以MAILTO=vivek@nixcraft.in在cron文件的顶部添加类似内容,以更改将输出发送到的位置。

我是否可以设置一个选项,以便将系统范围内的cron作业通过电子邮件发送给 root 而不是发送给运行它们的用户?(即,这样我就不必在每个用户的cron文件中进行设置)

Answers:


9

检查/etc/crontab文件并MAILTO=root在那里设置。可能还需要/etc/rc文件

crond似乎接受MAILTO变量,我想我不太确定,但是值得在启动crond之前更改环境变量。喜欢in /etc/sysconfig/crond/etc/rc.d/init.d/crond脚本中的源早期文件。

例:

[centos@centos scripts]$ strings /usr/sbin/crond | grep -i mail
ValidateMailRcpts
MailCmd
cron_default_mail_charset
usage:  %s [-n] [-p] [-m <mail command>] [-x [
CRON_VALIDATE_MAILRCPTS
mailed %d byte%s of output but got status 0x%04x
[%ld] no more grandchildren--mail written?
MAILTO
/usr/sbin/sendmail
mailcmd too long
[%ld] closing pipe to mail
MAIL

非常感谢!+1。也许将答案的底部放在预格式/代码格式中?
cwd

7

MAILTO=root/etc/default/cron。该文件包含cron的默认设置。

man 5 crontab 说,

如果定义了MAILTO(并且是非空的),则将邮件发送给如此命名的用户。

请参阅:http//man.cx/cron(1)#heading4


哪里?每个用户的crontab文件?
Nikhil Mulley

@Nikhil检查我更新的答案。
2011年

1
它仅适用于拥有crontab的用户。如果没有任何用户设置此变量,它将起作用吗?我认为@Cwd专门要求为所有用户提供一个全局设置。
Nikhil Mulley

@SachinDivekar -1 Nikhil是正确的。您还编辑了我的问题并更改了它的含义。编辑的含义确实与您的答案一致,但这不是我要的。
cwd

2
这对我不起作用。我已经在默认文件中设置了MAILTO并重新启动了cron服务,但是它仍在发送到root用户(我正在尝试发送到外部电子邮件地址)
peedee
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.