为什么 cron 不停止发送电子邮件甚至重定向到 /dev/null

为什么 cron 不停止发送电子邮件甚至重定向到 /dev/null

我有一些 cron 任务,其中一些任务不会停止向我发送电子邮件。

一个示例任务是:

*/2 * * * * php 应用程序/控制台 mautic:email:fetch > /dev/null 2>&1

(所有有问题的任务都是手动任务)。

我尝试过一些避免电子邮件的技巧:

> /dev/null
>/dev/null
>/dev/null 2>&1
>/dev/null 2>&1 || true
|| true

他们每次运行都会继续发送邮件。

电子邮件示例:

/bin/sh: 1: 无法创建 1: 权限被拒绝

(我知道这是一个奇怪的错误,但它只是一个例子。我知道我需要解决该错误而不是使其静音,但我想知道为什么我不能用正常的方法使其静音)。

问题是:为什么即使我重定向任务结果,或者使用 || true 更改任务结果,cron 继续发送电子邮件?我能找到的唯一解决方案(在链接的问题上)是添加

邮件地址=“”

在“正常”(或非垃圾邮件)的 cron 任务之后(以及在这些其他任务之前)。

相关问题:如何让 /dev/null/ 的 cronjob 完全静音?

答案1

/bin/sh: 1: cannot create 1: Permission denied错误可能是因为您在重定向中出现拼写错误。也许不是2>&1你有2>12>1&。 (通常,尝试1在主目录中创建名为的文件会成功,但如果名为的文件1已存在且不可写,那么您将收到该错误。)

该错误未被消除的原因是该消息不是来自输出已重定向的命令。 shell 在尝试为命令设置重定向时报告该消息。 shell 本身的输出尚未重定向,因此该消息将由您收集cron并通过电子邮件发送给您。

相关内容