在crontab文件的开头,您可以使用MAILTO指令指示您希望将输出作为电子邮件发送到电子邮件地址。我想将输出发送到多个地址。是否可以(以及如何)指定多个地址?

#1 楼

根据您使用的是哪个cron守护程序包,它可能会有所不同,但这来自Ubuntu Hardy上Vixie Cron的联机帮助页: />邮件被发送给如此命名的用户。
通过用逗号分隔
收件人用户,MAILTO还可以用于将邮件
定向到多个收件人。如果定义了
MAILTO但为空
(MAILTO =“”),则不会发送邮件。
否则,邮件将发送给crontab的所有者。


如果您不使用Vixie Cron,或者不确定,请尝试使用手册页用于crontab文件:man 5 crontab

示例

MAILTO="user.one@domain.one,user.two@domain.two"


评论


需要注意的一件事-地址之间仅使用逗号。也不要使用空格,否则cron会将地址(可能在/ var / log / cron或/ var / log / daemon中)记录为“ UNSAFE”,并拒绝发送到该地址列表。

–大卫·加德纳(David Gardner)
2013年9月6日在8:23



当用空格而不是逗号分隔地址时,我想到cron仅将邮件发送到第一个地址(并且crontab在保存更改时没有抱怨,这很可惜)。 syslog中有错误((CRON)错误(错误的mailto)),但是没有人注意到...

– Tobias
2013年9月11日8:52



#2 楼

作为上述答案的替代方法,您可以将电子邮件发送到单个地址,该地址是邮件组或通讯组列表。如果您管理多个服务器,此方法特别有效,因为管理邮件服务器上的地址比管理每台机器的crontab中的地址更容易。

评论


恕我直言,这是正确的答案。谁想要在各个crontab中维护电子邮件地址的单独列表?

–撒旦小狗
2014年2月3日在16:49

我创建了一个简单的列表:1.以root身份,通过添加如下行将“虚拟收件人”添加到/ etc / aliases:cron-listeners:fred@example.com,george@example.com 2.在crontab中, set MAILTO = cron-listeners如果您没有root用户访问权限,则可以尝试使用.forward方法。

– joeytwiddle
17年7月17日在2:29

#3 楼

一种解决方案可能是该用户帐户上的.forward文件,该文件将邮件发送到适当的地址。

评论


+1 .forward文件是解决方法。

–sleske
2010年4月16日在11:17

#4 楼

最好的答案可能是检查您发行版的当前cron / crontab版本的手册页,以查看是否可以使用MAILTO参数来完成某些操作,或者指定一个邮件地址,该邮件地址又将邮件转发给您多个地址。 br />

#5 楼

在每封电子邮件后添加,,例如:MAILTO="some.user1@example.com,some.user2@example.com"

评论


在文档中,电子邮件用逗号分隔,您在此处使用分号。您确定此语法有效吗?

–物理吸引力
15年12月28日在13:51

@MichaelHampton;不起作用

– 030
16-2-18在15:42

@Alfred我很清楚这一点。评论的其他人也是如此!

–迈克尔·汉普顿
16年2月18日在16:01

@kasperd因为不适合更改他人帖子的含义。那仅用于海报,到目前为止,他选择不对其进行更正。错误的答案应该被否决,并予以评论。

–迈克尔·汉普顿
16-2-18在21:38



更正了我的帖子。不知道它在2010年的运作情况如何。可能取决于Cron软件包。

–dannyb2100
16年2月19日在10:58