阻止 cron 给我发电子邮件

Ric*_*ins 13 unix

如何阻止 cron 将我安排的作业结果通过电子邮件发送给我?

Osc*_*Ryz 14

通过将环境变量“MAILTO”设置为“”

类似的东西:

SHELL=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh
Run Code Online (Sandbox Code Playgroud)


Rob*_*Rob 13

如果您希望单个作业停止发送电子邮件,只需将 >/dev/null 2>&1 附加到它

例如:

0 * * * * /home/script >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)


dbr*_*dbr 5

Cron 仅在有输出时向您发送电子邮件,无论是 onstdout还是stderr

如果它是您编写的脚本,请使其不那么冗长 - 删除不必要的echoprint语句。重定向stdout/dev/null也是一个有效的解决方案:

2 * * * * /my/script > /dev/null
Run Code Online (Sandbox Code Playgroud)

如果执行此操作后仍然收到消息,则输出为 on stderr,因此它应该是一个错误,您应该解决该错误.. 如果没有,您可以重定向stderr/dev/null..

2 * * * * /my/script > /dev/null 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

..尽管无视错误消息通常是个坏主意!(您如何知道 cron 作业何时中断?)

您可以使用2>&1- 例如将特定命令的输出从 stderr 重定向到 stdout :

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout
Run Code Online (Sandbox Code Playgroud)

..then 直接stdout进入/dev/null您的 cron 作业 - 这样您就可以将大声的命令静音,而不会丢失错误消息